更改自定义listView Android onclick的内容?

时间:2013-05-31 07:26:34

标签: android listview

我有自定义列表视图,我正在预览从服务器获取的数据。 现在我想在itemclick上更改listview中的数据。我想要预览的新数据也来自服务器。 这是我的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);
  }}

请提供解决方案。

请注意我想在列表视图的onclick上预览相同活动的数据。

这是我的onclick l1是listview

    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)是接收的服务器端数据。 现在告诉我如何更新列表。

2 个答案:

答案 0 :(得分:0)

写入getView()

textview.setOnClickListener(new OnClickListener() {

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

        });

或者在OnClick中进行工作

答案 1 :(得分:0)

您只需将此适配器设置为您的视图mCustomList.setAdapter(mMyCustomAdapter),然后点击监听器:mCustomList.setOnItemClickListener(this);您可以在参数内部实现整个onclick,或者让您的类实现点击监听器{{1} onItemClickListener的优点是你将得到一个位置: implements OnItemClickListener因此,您只能更新列表中的该项,然后通知您的适配器。

@Override
    public void onItemClick(AdapterView<?> arg0, View v, int pos, long arg3) { }