onClick が間違ったクラスに引っかかる理由を理解するのに苦労しています。
カスタムアダプターを使用してListView
、カスタム行を膨らませています。
私のrow.xmlでは、onRowClickをonClickメソッドとコードビハインドに入れました:
public void onRowClick(View v)
{
//do something;
}
アプリのフローは次のとおりです: ログイン => ListView を表示
成功した場合は Loginを呼び出しfinish()
、ListView でクラスを開くインテントを呼び出します。
私の問題は、onClick が ListView クラスではなく Login クラスに引っかかることです。
コード:
public class TabComeLeave extends Activity
{
private ProgressDialog m_ProgressDialog = null;
private ArrayList<Item> m_items = null;
private ItemAdapter m_adapter;
private Runnable viewItem;
private ListView listViewItem;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_come_leave);
listViewItems = (ListView)findViewById(R.id.listViewItems);
listViewItems .setClickable(true);
fillItemList();
}
public void fillItemList()
{
m_adapter = new ItemAdapter(SystemUtil.getInstance(), R.layout.list_row_come_leave, m_Items);
listViewItems.setAdapter(m_adapter);
}
ItemAdapter.java:
public class ItemAdapter extends ArrayAdapter<Item>
{
private ArrayList<Item> items;
public ItemAdapter(Context context, int textViewResourceId, ArrayList<Item> items)
{
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View v = convertView;
if (v == null)
{
LayoutInflater vi = (LayoutInflater)SystemUtil.getInstance().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.list_row_come_leave, null);
}
Item item = items.get(position);
if (item!= null)
{
TextView itemName = (TextView)v.findViewById(R.id.textViewItemName);
if (itemName != null)
{
itemName .setText(item.getitemFirstName());
}
}
return v;
}
}
誰かが私を正しい方向に向けることができますか?
どうもありがとう。