我为listview的每个项目都有按钮。单击按钮时,它必须获取相应listview项的值。
下面是我的getView方法。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
view = convertView;
if (convertView == null) {
//inflate the view for each row of listview
if (imageLoader == null)
imageLoader = AppController.getInstance().getImageLoader();
view = inflator.inflate(R.layout.pending_orders_fragment, null);
vholder = new ViewHolder();
vholder.mShippngRefNo = (TextView) view.findViewById(R.id.shipment_ref_no_value);
vholder.contact = (ImageButton) view.findViewById(R.id.imageButton);
vholder.mShippingStatus.setTag(position);
view.setTag(vholder);
} else
vholder = (ViewHolder) view.getTag();
PendingOrdersDao item = listforview.get(position);
vholder.mShippngRefNo.setText(item.getSipmentNo());
vholder.contact.setOnClickListener(this.onClickListener);
return view;
}
public void setOnButtonClickListener(final View.OnClickListener onClickListener) {
this.onClickListener = onClickListener;
}
我调用按钮如下在我的代码...
adapter.setOnButtonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LinearLayout relativeLayout = (LinearLayout) v.getParent();
TextView textView = (TextView) relativeLayout.findViewById(R.id.shipment_ref_no_value);
Toast.makeText(getActivity(),textView.getText().toString(),Toast.LENGTH_SHORT).show();
}
});
但我得到空指针异常,而这样做。我怎样才能解决这个问题?
下面是我的日志
com.vaighai.fragments.MyOrdersFragment$2$1.onClick(MyOrdersFragment.java:253)上的java.lang.NullPointerException(view.java:4475)上的android.view.view$performClick.run(view.java:18786)上的android.os.Handler.handleCallback(Handler.java:730)上的android.os.Handler.dispatchMessage(Handler.java:92)上的MyOrdersFragment位于android.os.Looper.loop(Looper.java:176)
更新日志:
致命异常:位于的主java.lang.NullPointerException
com.vaighai.adapters.CustomAdapter$1.on单击(CustomAdapter.java:122)在android.view.View.perform单击(View.java:4475)在android.view.查看$PerformClick.run(View.java:18786)android.os.Handler.handle回拨(Handler.java:730)android.os.Handler.dispatch消息(Handler.java:92)android.os.Looper.loop(Looper.java:176)在android.app.ActivityThread.main(ActivityThread. java: 5419)在java. lang.反射。方法。方法调用(方法. java: 525)在com. android. interal. os。ZygoteInit$method odAndArgsCaller. run(ZygoteInit. java: 1046)在com. android. interal. os。在dalvik. system上的ZygoteInit. main(ZygoteInit. java: 862)。NativeStart. main(本机方法)
只需在您的Toast消息中写道:
Toast.makeText(getActivity(),listforview.get((int)vholder.mShippingStatus.getTag()).getSipmentNo(),Toast.LENGTH_SHORT).show();
在if和else的外部getView()方法中写入:
vholder.mShippngRefNo.setTag(position);
很可能你在活动中忘记了这一点
class MainAct extends Activity implements AdapterView.OnItemClickListener
您可以直接设置setOnClickListener. so从代码中删除
vholder.contact.setOnClickListener(this.onClickListener);
添加以下代码
vholder.contact.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
LinearLayout relativeLayout = (LinearLayout) v.getParent();
TextView textView = (TextView) relativeLayout.findViewById(R.id.shipment_ref_no_value);
Toast.makeText(context,textView.getText().toString(),Toast.LENGTH_SHORT).show();}
});
这是我的listview点击事件: 这是我的按钮点击事件: 现在,我需要获得单击的listview项的位置。我已经声明了全局位置,但这总是给我位置1。 有人能告诉我怎么得到这个职位吗?
如何处理ListView中的每个按钮单击?活动课 如何管理ListView中每个项目的按钮单击?我尝试了许多方法…如何解决此问题?请任何人帮帮我...
我想知道如何选择listview first item select并通过单击按钮自动单击。 使用下面的代码,我可以选择第一行,但无法选择。 这是我的listview点击事件: 非常感谢您的帮助!如果有人想了解更多信息,请务必告诉我,以便我更新我的问题。
帮助处理通过适配器在ListView中设置的按钮上的单击。 我重新阅读了很多网站,都考虑过类似的任务,但都无法弄清楚并在我的代码中实现,希望大家能帮助我。提前谢谢你。
我无法弄清楚每三个条目的like按钮是如何以及为什么被按下的,从我实际按下的like按钮开始,但(幸运的是)只有一个,而且也调用了正确的API。 请帮忙。
我有一个FragmentActivity,它可以包含用户想要的任意多个ListFragments。ListFragments在HorizontalScrollView中并排排列(在ActionBar中选择一个选项时)。每个ListFragment项都包含一个TextView和一个按钮。单击按钮可更改按钮的ViewParent(包含按钮和TextView的线性布局)的背景色。 现在,单击每个List