我很难弄清楚为什么我的 onClick 会陷入错误的班级。
我有ListView
一个自定义适配器并为自定义行充气。
在我的 row.xml 中,我将 onRowClick 放在了 onClick 方法中,并且在我后面的代码中:
public void onRowClick(View v)
{
//do something;
}
app的流程是:Login => Show ListView
如果成功,我会调用finish()
Login,然后调用 Intent 以使用 ListView 打开类。
我的问题是 onClick 在 Login 类中而不是在 ListView 类中。
代码:
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);
}
项目适配器.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;
}
}
有人可以指出我正确的方向吗?
非常感谢。