OK私は同様の問題を検索して見ましたが、それらを試しましたが、役に立ちませんでした。いくつかの要素を含むlistViewがあり、1つの要素をクリックして、別の場所に詳細を表示したいと思います。
これは私のlistViewです
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pedidos);
ListView listView = (ListView) findViewById(R.id.actualStoresList);
Model.initialize();
Vector<String> values = Model.stores;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position,
long id) {
Object o = adapter.getItemAtPosition(position);
String str_text = o.toString();
Log.i("", "I have selected this: " + str_text);
}
});
CustomStringAdapter adapter = new CustomStringAdapter(this, R.layout.my_list_layout, R.id.list_content, values);
listView.setAdapter(adapter);
}
これはmy_list_layout.xmlです
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/list_content"
android:textColor="#000000"
android:gravity="center"
android:layout_margin="4dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20dp"/>
</LinearLayout>
リストは正しく表示されます。リストの要素(textView)をクリックすると、クリックイベントが「盗まれ」、何も起こりません(onItemClickListenerはTextViewではなくlistViewにアタッチされます)。
textViewには小さなマージンがあり、注意すれば、そのすぐ後ろをクリックして、実際にはlistViewに触れることができます。この場合、イベントは正常に発生し、ログが表示されます。
TextView android:focusable = "false"を設定しようとしましたが、それでもTextViewはlistViewの「上」にあり、常にクリックイベントを取得します。
TextViewを「透明」にして実際にlistViewをクリックするようにするか、onclickListenerをTextViewに追加してそのイベントを処理できるようにするにはどうすればよいですか?
ありがとう!
アレハンドロ