当前位置: 首页 > 知识库问答 >
问题:

单击listview按钮不会获取该listview项的相应textview值

武向文
2023-03-14

我为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(本机方法)

共有3个答案

赖鸿羲
2023-03-14

只需在您的Toast消息中写道:

Toast.makeText(getActivity(),listforview.get((int)vholder.mShippingStatus.getTag()).getSipmentNo(),Toast.LENGTH_SHORT).show();

在if和else的外部getView()方法中写入:

vholder.mShippngRefNo.setTag(position);
子车安和
2023-03-14

很可能你在活动中忘记了这一点

class MainAct extends Activity implements AdapterView.OnItemClickListener
萧阳波
2023-03-14

您可以直接设置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