0

每次按下按钮时,我都需要从 ListView 中的 cm1 和 cm2 行输出数据。行应显示在各种 TextView 中。

代码 TEST.java:

public String cm1;
public String cm2;

public class TEST extends Activity {
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        MyList = (ListView) this.findViewById(R.id.listStrings);
         setListAdapter();

        // button
        Button setup = (Button) this.findViewById(R.id.send);
        setup.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
        cm1 = "cm1text";
        cm2 = "cm2text";
        //xxxx
        }
        });
}

// adapter
private void setListAdapter() {
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    R.layout.row //idknow what im must writehere to set cm1 string to cm1text tv
    List.setAdapter(adapter);
    }

代码 TEST.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<ListView
    android:id="@+id/listStrings"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1" />

    <Button
        android:id="@+id/send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Send" />
</LinearLayout>

代码row.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
    android:id="@+id/cm1tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<TextView
    android:id="@+id/cm2tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</RelativeLayout>

单击 2 次后应查看 ListView:

cm1
cm2
cm1
cm2
4

1 回答 1

0

也许你应该/可以做的是拥有这个;

String cm = cm1 + "\n" + cm2

应该输出哪个;
cm1
cm2

然后您将 xml 更改为只有一个 textview 和适配器代码,如下所示;

ArrayList<String> listItems = new ArrayList<String>();
ArrayAdapter<String> aa = new ArrayAdapter<String>(this, R.layout.row, R.id.textViewCM, listItems);
yourListView.setAdapter(aa);

然后,无论何时按下按钮;

// ...code to initialise/change cm
listItems.add(cm);
aa.notifyDataSetChanged(); // notifies listView to update it's view

除非您必须拥有两个单独的 textView,否则应该可以满足的需求关联。

于 2012-12-19T13:55:21.940 回答