ListView
にはいくつかの行があります。 ItemClickListener
で私は、ユーザーがあなたが項目のためのonclickを呼び出しされていないメッセージをクリックするか、 リストビューで行の特定の項目を取得する
0
A
答えて
0
ボタンを呼び出すときにトーストを表示したい項目行の
lstcontact.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String v=lstcontact.getItemAtPosition(position).toString();
if(view.getId()==R.id.btncall) {
Toast.makeText(MainActivity.this, "Make A Call at " + position, Toast.LENGTH_SHORT).show();
}else if(view.getId()==R.id.btnmess) {
Toast.makeText(MainActivity.this, "Make A Message at " + position, Toast.LENGTH_SHORT).show();
}
}
});
をクリックするとアクセスしたいですその行にこれを行うには、アダプターのリスナーを実装する必要があります。
public interface CustomListener{
void onSomeItemClick(View view);
}
このコンストラクターでは、このリスナーを初期化する必要があります。あなたがonSomeItemClick
方法あなたのアダプタのgetView()
あなたがonClickListener
を実装する必要がで
@Override
public void someItemClick(View view){
if(view.getId()==R.id.btncall) {
Toast.makeText(MainActivity.this, "MAke A Call at "+position, Toast.LENGTH_SHORT).show();
}else if(view.getId()==R.id.btnmess) {
Toast.makeText(MainActivity.this, "MAke A Message at "+position, Toast.LENGTH_SHORT).show();
}
}
をオーバーライドする必要がリスナーにその後
adapter = new YourAdapter(this,this,list);
を実装する必要がありますが、このアダプタを作成する活動の
public YourAdapter(Context context, CustomListener listener, List<YourClass> list){
this.context = context;
this.listener = listener;
this.list = list;
}
どのビューでクリックするかを指定します。
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener!=null{
listener.onSomeItemClick(v);
}
}
});
0
onItemClickのビューパラメータは、(すべてのボタンと内部のすべてのものを含む)全体のListViewの行であるので、view.getId()== R.id.btncallは意味を成さするつもりはありません。
カスタムアダプタのボタンのonClickListenerにトーストを設定するのが最適です。 、
public class MyListAdapter extends ArrayAdapter<YourItemType> {
static class ViewHolder {
private Button callButton;
private Button messageButton;
// declare any other views you want to control here
}
public MyListAdapter(Context context, List<YourItemType> items) {
super(context,0,items);
}
@NonNull
@Override
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.your_listview_layout, null);
holder = new ViewHolder();
holder.callButton = (Button) convertView.findViewById(R.id.btncall);
holder.messageButton = (Button) convertView.findViewById(R.id.btnmess);
// find views for any other views in your ViewHolder/Listview layout
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
YourItemType item = getItem(position);
holder.callButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// simple say what position is
Toast.makeText(getContext(), "Make A Call at "+String.valueOf(position), Toast.LENGTH_SHORT).show();
// do something with the item itself
Toast.makeText(getContext(), "This toast is for info on the item, which is "+ item.toString(), Toast.LENGTH_SHORT).show();
}
});
holder.messageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// simple say what position is
Toast.makeText(getContext(), "Make A Call at "+String.valueOf(position), Toast.LENGTH_SHORT).show();
// do something with the item itself
Toast.makeText(getContext(), "This toast is for info on the item, which is "+ item.toString(), Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
} [アンドロイドの
関連する問題
- 1. リストビュー項目をダブルクリックすると選択項目を取得
- 2. リストビューの選択項目を取得
- 3. Repeaterの特定の項目をコードで取得する
- 4. findRecordで特定の項目を取得する
- 5. Qt5:リストビューでクリックした項目の値を取得する
- 6. 配列内の特定の項目のインデックスを取得する
- 7. TextWatcher内のリストビュー項目内の他のビューを取得する
- 8. javascriptのコンテキストメニュー項目を特定/取得する
- 9. リスト項目(LINQ)の特定の範囲を取得します
- 10. 特定のリストビュー項目に従ってリストビューを並べ替える方法
- 11. リストビューで6項目ごとに固定画像を取得できますか?
- 12. OnItemClickリスナーのリストビュー項目内のチェックボックスのIDを取得
- 13. 特定の項目
- 14. クリック時のリストビュー項目のデータを取得
- 15. リスト内の特定の項目の後に項目の数を取得する方法
- 16. 3行リストビュー項目の作成方法
- 17. リストビュー項目のボタンをクリックすると、リストビュー項目も変更されます。
- 18. リストビュー項目
- 19. 特定の文字の後にlistBox項目の値を取得する
- 20. 配列リスト/リストビューからチェック項目/特定の項目を削除する方法
- 21. 特定の子ビューを展開可能リストビューで取得する
- 22. アンドロイドボタンリストの値のリストビュー項目の位置を取得する方法
- 23. 内部ネストされたリストビューのレイアウトテンプレートで、リストビューの外側のデータ項目のアクセスプロパティを取得する方法
- 24. リストビューの選択項目をカルーセルビューでヌルに設定する
- 25. スピナー項目を選択して表示/リストビューを取得
- 26. リストビューの各項目のオプション
- 27. 親メニュー項目のサブ項目を取得するには?
- 28. リストビュー項目と画像リスト項目missmatching
- 29. リストビュー内の選択された項目をsqliteデータベースに取得する
- 30. リストビュー項目の値を取得してAlertDialogに表示する方法は?
可能な重複:あなたのレイアウト/アダプタのコードを見て素敵だっただろうが、基本的なカスタムアダプタ(効率のため、ViewHolderパターンを使用して)は、このようなものを見ることができますListViewで行の単一項目を取得する方法](https://stackoverflow.com/questions/11145920/android-how-to-get-single-item-of-a-row-in-listview) –
を入力してくださいあなたのアダプタコード –