3

私は次のものを持ってListViewいます:

<ListView
        android:id="@+id/list"
        android:layout_width="290dp"
        android:layout_height="166dp"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="10dp"
        android:visibility="gone"
        android:choiceMode="singleChoice" />

そこにはImageView

<ImageView
        android:id="@+id/cont"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="30dp"
        android:src="@drawable/img" />  

リストビューにデータを追加する方法。

  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, android.R.id.text1, list);
            listView.setAdapter(adapter);
            listView.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {


                }
            });

リストビューの値を更新しようとしています:

View v=listView.getChildAt(position);
                    TextView tv= (TextView) v.findViewById(android.R.id.text1);
                    tv.setText(firstNameDialog.getText().toString().trim().toString()+" "+lastNameDialog.getText().toString().trim().toString());

しかし、これは値を変更していません

画像ビューがクリックされたときに、リストビュー項目の値を取得して配列の形式で保存できるようにしたいと考えています。リストビューのすべてのアイテムの値を取得する方法と、クリックしたアイテムに値を再度設定する方法

4

5 に答える 5

0

プロセスは非常に簡単です。できることは、画像ビューをクリックして、リストビューを作成するために使用している配列アダプターを反復処理することです。反復中に配列を宣言し、反復された値をその中に挿入し続けることができます。それが役に立てば幸い!

于 2013-08-19T07:19:34.303 に答える
0
int wantedPosition = position; // Whatever position you're looking for
int firstPosition = mList.getFirstVisiblePosition() -mList.getHeaderViewsCount();

int wantedChild = wantedPosition - firstPosition;
if (wantedChild < 0 || wantedChild >= mList.getChildCount()) {
    return;
}

Button btnEdit = (Button)wantedView.findViewById(R.id.btnEdit);
btnEdit.setText("my new message");

このようなことを試しましたか

于 2013-08-19T07:19:46.460 に答える
0

を使用しadapterます。サイクルで adapter から値を取得します。

StringBuilder b = new StringBuilder();
for(int i=0;i>adapter.getCount();i++)
    b.append(adapter.getItem(i));//May be toString() should be used.
于 2013-08-19T07:19:56.993 に答える