OnclickListener在使用SimpleCursorAdapter一个ListActivity一排的单个元素绑定到DB工作不正常不正常、绑定、元素、工作

由网友(挥刀斩不臣.)分享简介:请帮忙。正如我在标题中,我试图让这取决于用户单击一个列表适配器推出不同的动作的一排的单个元素都表示。据种的作品,但它需要长以给用户点击反应。它是什么,我做错了?由于提前,于是,我就在以下code @覆盖保护无效onListItemClick(ListView中升,视图V,INT位置,长的id){    super.o...

请帮忙。

正如我在标题中,我试图让这取决于用户单击一个列表适配器推出不同的动作的一排的单个元素都表示。

据种的作品,但它需要长以给用户点击反应。它是什么,我做错了?

由于提前,

于是,我就在

以下code

  @覆盖保护无效onListItemClick(ListView中升,视图V,INT位置,长的id){    super.onListItemClick(L,V,位置ID);    //获取被点击的项目    光标C =(光标)this.getListAdapter()的getItem(位置)。    // c.moveToNext();    prescription_id = c.getString(0);    TextView的PNAME =(TextView中)v.findViewById(R.id.text2);    TextView的paName =(TextView中)v.findViewById(R.id.text3);    TextView的rDateLabel =(TextView中)v.findViewById(R.id.textView1);    TextView中RDATE =(TextView中)v.findViewById(R.id.text4);    TextView的rLeftLabel =(TextView中)v.findViewById(R.id.text5);    TextView的rLeft =(TextView中)v.findViewById(R.id.text6);    ImageView的callPhone =(ImageView的)v.findViewById(R.id.C​​all_Pharmacy);    pName.setOnClickListener(新OnClickListener(){        @覆盖        公共无效的onClick(视图v){            goToPDetails();        }    });    pa.setOnClickListener(新OnClickListener(){        @覆盖        公共无效的onClick(视图v){            goToPDetails();        }    });    rDateLabel.setOnClickListener(新OnClickListener(){        @覆盖        公共无效的onClick(视图v){            goToPDetails();        }    });    rDate.setOnClickListener(新OnClickListener(){        @覆盖        公共无效的onClick(视图v){            goToPDetails();        }    });    rLeftLabel.setOnClickListener(新OnClickListener(){        @覆盖        公共无效的onClick(视图v){            goToPDetails();        }    });    rLeft.setOnClickListener(新OnClickListener(){        @覆盖        公共无效的onClick(视图v){            goToPDetails();        }    });    callPhone.setOnClickListener(新OnClickListener(){        @覆盖        公共无效的onClick(视图v){            //有些code        }    });} 

解决方案

所有这些的onClick监听器(那些在一个ListView控件元素的单个子视图)可能不应该在这里的onListItemClick方法,但在的getView方法你的适配器,而不是(与正确使用convertView说法)。

你做的方式似乎很错误的,也许如果你正确地在正确的地方落实各项的onClick听众甚至没有需要你onListItemClick方法。

android setItems不适用于onClickListener的参数

Please help.

As I have stated in the title I am trying to make that individual elements of a row of a List adapter launch different actions depending on what the user click.

It "kind of" works but it takes LONG for it to react to user clicks. What is it that I am doing wrong?

Thanks in advance,

So I tried the following code in

    @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    // Get the item that was clicked
    Cursor c = (Cursor) this.getListAdapter().getItem(position);

    // c.moveToNext();

    prescription_id = c.getString(0);
    TextView pName = (TextView) v.findViewById(R.id.text2);
    TextView paName = (TextView) v.findViewById(R.id.text3);
    TextView rDateLabel = (TextView) v.findViewById(R.id.textView1);
    TextView rDate = (TextView) v.findViewById(R.id.text4);
    TextView rLeftLabel = (TextView) v.findViewById(R.id.text5);
    TextView rLeft = (TextView) v.findViewById(R.id.text6);
    ImageView callPhone = (ImageView) v.findViewById(R.id.Call_Pharmacy);

    pName.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    pa.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    rDateLabel.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    rDate.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    rLeftLabel.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    rLeft.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            goToPDetails();

        }
    });
    callPhone.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //Some Code
        }
    });
}

解决方案

All those onClick listeners (those on single sub-views of one ListView element) probably shouldn't be here in the onListItemClick method, but in the getView method of your Adapter instead (with proper use of the convertView argument).

The way you do it seems quite wrong, maybe your onListItemClick method isn't even needed if you correctly implement the various onClick listeners at the right place.

阅读全文

相关推荐

最新文章