OnListItemClickはAndroidで起動されていませんか? -- android フィールド と listview フィールド 関連 問題

onListItemClick is not getting invoked in android?












3
vote

問題

日本語

TextView、ImageView、ImageButtonからなるListViewとカスタムレイアウトを持っています。私のイメージボタンがRadioButtonのように振る舞いたいです。しかし、私のOnListItemClickイベントは起動していません。

<事前> <コード> public class MyListAdapter extends BaseAdapter { Context context; ArrayList<String> text; ArrayList<String> Count; int count; public MyListAdapter(Context ctx, ArrayList<String> text, ArrayList<String> Count) { this.context = ctx; this.textAnswers = text; this.optionCount = Count; } @Override public int getCount() { return Count.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null) { convertView = LayoutInflater.from(context).inflate(R.layout.custom_layout, null); } ImageButton choice = (ImageButton)convertView.findViewById(R.id.ImageButton); if(imageChoice != null) { choice.setImageResource(R.drawable.radio_unselected); } TextView txt = (TextView)convertView.findViewById(R.id.TextView); txt.setText(Count.get(position)); TextView txtText = (TextView)convertView.findViewById(R.id.TextViewAnswer); txtText.setText(textAnswers.get(position)); return convertView; } }

と私のOnListItemClick AS

<事前> <コード> @Override protected void onListItemClick(ListView listView, View v, int position, long id) { super.onListItemClick(listView, v, position, id); ImageButton choice = (ImageButton)v.findViewById(R.id.ImageButton); choice.setImageResource(R.drawable.radio_selected); }

今PLZ私のイメージボタンにRadioButtonのような行動を与えるのに役立ちます。私のonlistItemClickが呼び出されていないということです。 また、Android:FOGENABLE = "false" Android:FocusableIntouchMode = "false" Android:Chickable = my custom_layoutのすべてのコントロールの "false"をクリックします。 事前にありがとうございます。

英語

I have a listview and custom layout consisting of TextView, ImageView, ImageButton. I want my image button to behave like RadioButton. But my onListItemClick event is not getting invoked.

public class MyListAdapter extends BaseAdapter {      Context context;     ArrayList<String> text;     ArrayList<String> Count;      int count;      public MyListAdapter(Context ctx, ArrayList<String> text, ArrayList<String> Count) {         this.context = ctx;         this.textAnswers = text;         this.optionCount = Count;     }      @Override     public int getCount() {         return Count.size();     }      @Override     public Object getItem(int position) {         return position;     }      @Override     public long getItemId(int position) {         return position;     }      @Override     public View getView(int position, View convertView, ViewGroup parent) {          if(convertView == null) {             convertView = LayoutInflater.from(context).inflate(R.layout.custom_layout, null);         }          ImageButton choice = (ImageButton)convertView.findViewById(R.id.ImageButton);         if(imageChoice != null) {             choice.setImageResource(R.drawable.radio_unselected);          }          TextView txt = (TextView)convertView.findViewById(R.id.TextView);         txt.setText(Count.get(position));          TextView txtText = (TextView)convertView.findViewById(R.id.TextViewAnswer);         txtText.setText(textAnswers.get(position));          return convertView;     } } 

And my onListItemClick as,

@Override protected void onListItemClick(ListView listView, View v, int position, long id) {     super.onListItemClick(listView, v, position, id);     ImageButton choice = (ImageButton)v.findViewById(R.id.ImageButton);     choice.setImageResource(R.drawable.radio_selected);  } 

Now plz any one help to give my imagebutton the behavior like radiobutton. Most important i missed is that my onListItemClick is not getting invoked. Also I have set the android:focusable="false" android:focusableInTouchMode="false" android:clickable="false" of all controls on my custom_layout. Thanks in advance.

</div
     
         
         

回答リスト

2
 
vote
vote
ベストアンサー
 

主な活動のSetOnitemClickListenerを追加する必要があります。メインアクティビティで、ItemClickを呼び出すことは決してないでください。

例えば:

oncreate()法:

<事前> <コード> @IBAction func btnDeleteCell(_ sender: UIButton) { let UC = UserControllers() let parentViewController = PatientPersonalInfoViewController() UC.deleteSocialPlatform(indexRow) { (socialplatformArray) in parentViewController.userSocialPlatform = socialplatformArray } DispatchQueue.main.async { self.parentCollectionView!.reloadData() } print(indexRow) } 7

//下記のメソッドを作成し、onItemClickListener

を実装できるようにします。 <事前> <コード> @IBAction func btnDeleteCell(_ sender: UIButton) { let UC = UserControllers() let parentViewController = PatientPersonalInfoViewController() UC.deleteSocialPlatform(indexRow) { (socialplatformArray) in parentViewController.userSocialPlatform = socialplatformArray } DispatchQueue.main.async { self.parentCollectionView!.reloadData() } print(indexRow) } 8

それはうまくいくべきです:)

 

You need to add a setOnItemClickListener to your ListView in the main activity, if you do not, you'll never get a call to the itemClick.

for instance:

OnCreate() Method:

ListView lv = (ListView) findViewById(R.id.listview1);  lv.setOnItemClickListener(this); 

// Create the method below and let the activity implement onitemclicklistener

public void onItemClick(AdapterView<?> a, View v, int position, long id) { //set action here  } 

that should work :)

</div
 
 
2
 
vote

あなたのアクティビティがListActivityで、リストビューにID = @android:id = @android:id / listがリスナーを設定する必要なしに呼び出されます。

 

If your activity is a ListActivity and your list view has the id = @android:id/list than your onListItemClick will be called without you having to set the listener.

</div
 
 
   
   
1
 
vote

リスト項目ビューで android:descendantFocusability="blocksDescendants" を設定する必要があるかもしれません。それは私のためにそれを解決しました。

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

You might need android:descendantFocusability="blocksDescendants" set in your list item view. That solved it for me.

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

imageButtonのXMLでこれらの値を設定してから、動作するはずです。

<事前> <コード> android:focusable="false" android:focusableInTouchMode="false"
 

Set these values ​​in the XML for the ImageButton, then it should work.

android:focusable="false" android:focusableInTouchMode="false" 
</div
 
 

関連する質問

-1  C#.NETのListViewで列を追加します  ( Add columns in listview in c net ) 
ListView に列を追加する方法を教えてください。 "_Listavailable"という名前のリストビューを持っています、 「名前」という名前の列を追加する必要がありますが、それを行う方法がわからない。これは簡単な方法です ColumnHeader ...

1  マウスイベントでDelphi ListView 'Stuck'  ( Delphi listview stuck in mouse event ) 
状況は説明するのは少し難しいです、私は私の最高をやるでしょう。 ListViewがあり、右クリックメニューがあります。メニュー項目の1つは新しいモーダルフォームを開きます。通常、ユーザーがメニュー項目をクリックすると、新しいフォームが表示され、大丈夫です。 ...

0  Android ListViewの質問:レイアウトXMLで<ListView> </ ListView>を使用できませんか?  ( Android listview questioncan not use listview listview in layout xml ) 
XMLの下のようなXMLを書いてみましょうが、常に例外を言う それが原因で発生しました:java.lang.UnsupportedOperationException: AddView(View、LayoutParams)はAdapterViewではサポート...

1  交互の色とフォーカスの色があるAndroid ListView  ( Android listview with alternate color and on focus color ) 
リストビュー行で代替色を設定する必要がありますが、On Focusのデフォルト黄色の背景を削除/無効にする必要があります 私はBackgroundColorで試しました RowView.SetBackgroundColor(OS Color) Backgro...

1  ListViewヘッダーをプログラム的に非表示にします  ( Hide listview header programmatically ) 
<符号ListView があります。 <前> Col1 Col2 Col3 1 A i 2 B II 3 C III 2ボタンを使います。最初のボタンをクリックすると、COL3は崩壊する必要があり、2番目のボタンをクリックすると表示されます。 そのような...

0  リストビューコントロールに辞書からデータを追加する方法  ( How to add data from a dictionary to a list view control ) 
(私のhtps://stackoverflow.com/questions/4084393/how-to-read-xml-list-tring-tstring-tring-tring-tring-tstring-tring-tring-tring-tring...

0  タブを開くときとデータベースが空の場合にSQLiteのエラー  ( Sqlite error when opening a tab and when the database is empty android ) 
私は4つのタブがあり、最初の2つのタブがデータベース上にデータを挿入し、他の2つのタブはカーソルを使用してデータを表示するようになります。私が最初にアプリを起動し、2つのタブのいずれかを押すと何もこのエラーを与えると、このエラーが発生した場合、私の問題は私の問...

6  ListViewItemの "Isselected"プロパティによるListViewバインディング  ( Listview binding with isselected property of listviewitem ) 
私は以下のクラスを持っています <事前> <コード> public abstract class AbsTrinityEvent { public event IsSelected OnSelectedEvent; bool _...

5  リストからデータを追加する方法<list <string >>リストビューへ  ( How to add data from a listliststring to a list view ) 
<コード> List<List<String>> MyListを持っていて、が含まれています <事前> <コード> { "A1","B1","C1" } { "A2","B2","C2" } { "A3","B3","C3" } ...

1  共用体クエリを使用してODBCソースから複数行を取得する  ( Retrieve multiple rows from an odbc source with a union query ) 
複数行をODBCソースからListViewコントロールに取得しています。 SIMPLE SELECTの場合は、SQL_SCROLLABLEのステートメント属性とうまく機能します。 Unionクエリ(2つの選択を含む)でこれを行うにはどうすればよいですか? 最も...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有