連絡先リストビューの作成、ユーザー名の表示、ユーザーの電子メールとユーザーIDの作成です。今、特定のアイテムをクリックしながら、私はユーザーIDに基づいてサーバーにいくつかのイベントを投稿したい。ユーザーIDがlong値であるため、onClickItemリスナー内でユーザーIDを取得する方法私はテキストを意味するユーザー名を取得できますが、ユーザーIDは取得できません。onClickItem listnerのカスタマイズ - ListActivity
答えて
ListViewコントロールはonCLicklistenerを持っているあなたは、あなたがこれを使用することができますリストビューを膨らませるためのArrayListを使用しているposition.Ifパラメータを持っています対応するオブジェクトを取得するためのポジション。
View.setTag
とView.getTag
を使用して、ユーザーIDをタグに設定できます。あなたは必要なものを選ぶことができる2つのバージョンがあります。これにより、ユーザーIDをタグとして添付して戻すことができます。
http://developer.android.com/reference/android/view/View.html#setTag(int、java.lang.Object)メソッド
あなたのコードは次のようになります。
view.setTag(Long.valueOf(id));
.....
onClickListener(..) {
Long id = (Long)view.getTag();
}
thnx、うまくいきます:) –
getView()でsetTagを何度も使用できますか?スクロールしている間にクラッシュしています。何をしたらいいですか? –
アダプタを使用していますか?そうでなければ、キー/値のペアであるsetTagの他のバージョンを見ることができます。 – havexz
あなたのユーザーIDが含まれている独自のBeanクラスを作成し、リスト(またはArrayListに)
はその後、ArrayAdapterを拡張するクラスを作成することにより、アダプタを作成してそれを置く必要があります(たとえば)このBeanクラスのリストをバインドします
カスタムレイアウトを拡張する場合は、行内のonItemClickListenerまたはView listenerを使用してリスナーを登録します。
位置を取得し、それを使用してBeanリストのユーザーIDを取得します。
ここに私のスニペットは
public class ListActivity extends Activity implements OnItemClickListener {
private Context context;
private RowAdapter adapter;
private ArrayList<Row> rowList = new ArrayList<Row>();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
context = ListActivity.this;
initRows();
adapter = new RowAdapter(context, rowList);
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
private void initRows() {
Row row = new Row(1);
rowList.add(row);
row = new Row(2);
rowList.add(row);
}
public class Row {
long userid = 0;
public Row(long userid) {
this.userid = userid;
}
public long getUserid() {
return userid;
}
public void setUserid(long userid) {
this.userid = userid;
}
}
public class RowAdapter extends ArrayAdapter<Row> {
private Context context;
public RowAdapter(Context context, ArrayList<Row> bindList) {
super(context, R.layout.row_layout, bindList);
this.context = context;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
if(view == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.row_layout, null);
}
//if you use some additional View you can retrieve your position using this
Button button = view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateSelected(position);
}
});
return view;
}
}
//or if you rather just listen on row click then you can retrieve your position using this
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) {
updateSelected(position);
}
private void updateSelected(int position) {
rowList.get(position).getUserid();
//have it your way
}
}
- 1. onlongclick listner with android 2.0.3
- 2. ListActivityの項目
- 3. listactivity
- 4. 単純なTCPClient/Listner( "hello world")の例
- 5. ListActivityインテント
- 6. ListActivityのgetLoaderManager
- 7. ListActivityのないListView
- 8. Android db.delete(); on ListActivity
- 9. Android ListActivity ListView setOnItemClickListener
- 10. ListActivity with Selectable Items
- 11. AdmobとListActivity
- 12. ListActivityとダイアログ
- 13. AdmobとListActivity
- 14. ListView and ListActivity
- 15. android activitygroup and listactivity
- 16. ListActivity TwoLineListItem代替
- 17. ListActivityのテーマの問題
- 18. ListActivityを持つデータベース
- 19. Custom ListActivityとinsideListのonListItemClick
- 20. long ListActivityのメモリ不足
- 21. ListActivityの空白画面
- 22. ListActivityをテストするには?
- 23. ImageViewをListActivityに追加
- 24. Android:BaseActivityでListActivityを使用
- 25. FileFilterを使用したListActivity
- 26. djangoのカスタマイズをカスタマイズ
- 27. SimpleAdapterデータの更新後のListActivityのリフレッシュ
- 28. AndroidのList ViewとListActivityの質問
- 29. AndroidのListActivityにフォントを設定する
- 30. ListActivityとActionBarActivityの組み合わせ
だあなたはここであなたのArrayAdapterの作成に関連するコードを置くことができますか? – havexz