[解決済み] ListView setOnItemClickListenerがボタン追加で機能しない件
2023-02-15 07:43:09
質問
各行にテキストとボタンがあるリストビューがありますが、リストビューのsetOnItemClickListener()が動作しません。アイテムクリックとボタンクリックのイベントを別々に処理することは可能でしょうか(アイテムクリックはアクティビティA、ボタンクリックはアクティビティBを呼び出す必要があります)。どなたか解決策をお持ちですか?
private ArrayList<String> userIDArr = null;
private ArrayList<String> userNameArr = null;
private DatabaseHelper dbHelper = null;
private ListView userListView=null;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.list_view);
dbHelper = new DatabaseHelper(this.getApplicationContext());
Map<String,ArrayList<String>> displayMap = dbHelper.getUserListToDisplay();
userIDArr = displayMap.get("UserID");
userNameArr = displayMap.get("FirstName1");
userListView = (ListView) findViewById(R.id.listView2);
userListView.setAdapter(new UserListAdapter(this,userIDArr));
userListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
Toast.makeText(usersListActivity.this,
"Item in position " + position + " clicked", Toast.LENGTH_LONG).show();
}
});
}
public class UserListAdapter extends ArrayAdapter<String>
{
Activity context;
public UserListAdapter(Activity context, ArrayList<String> names) {
super(context, R.layout.list_item, names);
this.context = context;
}
private class ViewHolder {
public TextView UserNameAndID;
public TextView Description;
public Button UploadBtn;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = context.getLayoutInflater();
rowView = inflater.inflate(R.layout.list_item, null, true);
holder = new ViewHolder();
holder.UserNameAndID = (TextView) rowView.findViewById(R.id.User_detailsTxt);
holder.Description = (TextView) rowView.findViewById(R.id.User_status);
holder.UploadBtn = (Button) rowView.findViewById(R.id.uploadbutton);
holder.UploadBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(usersListActivity.this," Button clicked",Toast.LENGTH_SHORT).show();
}
});
rowView.setTag(holder);
} else {
holder = (ViewHolder) rowView.getTag();
}
String s = userNameArr.get(position)+","+userIDArr.get(position);
holder.UserNameAndID.setText(s);
holder.Description.setText("U r in middle");
return rowView;
}
}
}`
どのように解決するのですか?
ボタン(またはリストアイテム内のクリックを処理したい他のビュー)を以下のように設定してみてください。
android:focusable="false"
android:focusableInTouchMode="false"
関連
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] 設定ページに移動せずに位置情報サービスをオンにする
-
[解決済み] RecyclerView.Stateを使って、RecyclerViewのスクロール位置を保存するには?
-
[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する
-
[解決済み] Gmailの3分割アニメーションシナリオの完全動作サンプル?
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] アンドロイドのクライアントでヒープアップデートを有効にする方法
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] Android StudioからADBを手動で再起動する方法
-
[解決済み] グリッドビューの高さが削減される
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 設定ページに移動せずに位置情報サービスをオンにする
-
[解決済み] AndroidにおけるViewPager2の適切な実装
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] Androidのソースコードにある@hideの意味とは?
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] Androidアプリケーションのヒープサイズを大きくするには?
-
[解決済み] アンドロイドでシェイクを検出するには?
-
[解決済み] AsyncTaskLoaderとAsyncTaskの比較