私は次のような行レイアウトのリストビューを持っています
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="5"
>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/ArriveTime"
android:gravity="center"
android:layout_weight="1" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/Name"
android:gravity="center"
android:layout_weight="1" />
<Button
android:focusable="false"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/Arrive"
android:gravity="center"
android:layout_weight="1"
android:text="Arrive" />
<Button
android:focusable="false"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/Encounter"
android:gravity="center"
android:layout_weight="1"
android:text="Encounter" />
<Button
android:focusable="false"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/Exit"
android:gravity="center"
android:layout_weight="1"
android:text="Exit" />
</LinearLayout>
行をクリックするとボタンをクリックできるようにしたいので、設定android:focusable="false"
してクリックすると言います
MainGrid.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Log.d("zzzzzzzzzzzzzzzzzzzzzzzz",""+ oldPosition);
if(oldPosition != -1)
{
MainGrid.getChildAt(oldPosition).setFocusable(false);
//MainGrid.findViewById(oldPosition).setFocusable(false);
}
// Set the whole list view unfocusable
MainGrid.setFocusable(false);
// focus only on this
view.setFocusable(true);
oldPosition = position -1;
SetMenueOnClick(position-1) ;
}});
問題は、行を最初にクリックした後、ボタンがアクティブになり、それを修正するためのアイデアを再度クリックできないことです。クリックした行のボタンをアクティブにしてから、フォーカスを行に転送してさらにクリックする必要があります