0

我有自定义列表视图,我在其中预览从服务器获取的数据。现在我想在其 itemclick 上更改列表视图中的数据。我要预览的新数据也来自服务器。这是我的 BaseAdapter 类

    class MyCustomAdapter extends BaseAdapter {

     Vector<String> data_text;
      int[] data_image;

   MyCustomAdapter()
   {
          data_text = null;
          data_image = null;
   }

   MyCustomAdapter(Vector<String> text, int[] image)
   {
          data_text = text;
          data_image = image;
   }

  public int getCount()
  {
         return data_text.size();
  }

 public String getItem(int position)
 {
         return null;
 }

 public long getItemId(int position)
 {
         return position;
 }

 public void updateResults( Vector<String> results) {
        data_text= results;
        //Triggers the list update
        notifyDataSetChanged();
    }
 public View getView(int position, View convertView, ViewGroup parent)
 {

          LayoutInflater inflater = getLayoutInflater();
          View row;

          row = inflater.inflate(R.layout.category_list_element, parent, false);

          TextView textview = (TextView) row.findViewById(R.id.TextView01);
          ImageView imageview = (ImageView) row.findViewById(R.id.ImageView01);

          textview.setText(data_text.get(position).toString());
          imageview.setImageResource(data_image[position]);

          return (row);
  }}

请提供解决方案。

请注意,我想在 listview 的 onclick 上预览同一活动的数据。

这是我的 onclick l1 是列表视图

    l1.setAdapter(new MyCustomAdapter(appCat, image));

l1.setOnItemClickListener(new OnItemClickListener() {


    @Override
     public void onItemClick(AdapterView<?> parent, View view,int position,long id) 
        {
            View curr = parent.getChildAt((int) id);
            TextView c = (TextView)curr.findViewById(R.id.TextView01);
            String sel_item = c.getText().toString();
            API_GOD(URL);


             }});

API_GOD(URL) 是接收的服务器端数据。现在告诉我如何更新列表。

4

2 回答 2

0

写在 getView()

textview.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                updateResults(results);

        });

或者在 OnClick 中做你的工作

于 2013-05-31T07:32:58.307 回答
0

您只需将此适配器设置为您的视图mCustomList.setAdapter(mMyCustomAdapter),然后设置点击侦听器:mCustomList.setOnItemClickListener(this);您可以在参数内实现整个 onclick 或让您的类实现点击侦听implements OnItemClickListener器 onItemClickListener 的优点是您将获得一个位置: @Override public void onItemClick(AdapterView<?> arg0, View v, int pos, long arg3) { }因此您可以仅更新列表中的该项目,然后通知您的适配器。

@Override
 public void onItemClick(AdapterView<?> parent, View view,int position,long id) 
    {

        TextView c = (TextView) view.findViewById(R.id.TextView01);
        String sel_item = c.getText().toString();
        API_GOD(URL);


         }});
于 2013-05-31T07:35:13.257 回答