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);
  }}

解決策を提供してください。

リストビューの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

このアダプタをビューに設定してから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 に答える
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 に答える