2015-08-13 67 views
0

在列表視圖中有一個imageview和一個textview。 我想單擊imageview以使用hashmap的值轉到另一個活動。我uesed setOnItemClickListener是如下:單擊在列表視圖中的圖像查看轉到另一個活動

lvAll.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, 
       long arg3) { 
      testBadgeMap = (HashMap<String, Object>) parent.getItemAtPosition(position); 
     } 
    }); 

但我不能設置爲ImageView的聽衆,以便我不能點擊ImageView的。 如何單擊imageview以使用hashmap的值轉到其他活動?

+2

你必須把** ** imageview **的適配器** getview **中的setOnClickListener **方法。 – Pankaj

回答

0

您必須使用適配器代碼來處理列表項中的點擊。

@Override 
public View getView(int position, View convertView, 
     ViewGroup parent) { 

    LayoutInflater inflater = (LayoutInflater) con 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View rowView = inflater.inflate(R.layout.yourlayout, parent, false); 

    Button row = (Button) rowView.findViewById(R.id.btnSample); 


    final int n = position; 
    row.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Intent next = new Intent(context, NextActivity.class); 
       startActivity(next); 

     } 
    }); 

    return rowView; 
} 
+0

如果我喜歡這個,我怎樣才能得到hashmap的價值?我在地圖上放了一些價值,我需要這些信息在下次活動中使用Intent –

+0

pass –

0

你可以使用image.setOnClickListener() 但我建議使用的ImageButton,它是從ImageView的延伸,它會點擊截流事件,那麼你可以單擊它

0
public View getView(int position, View convertView, ViewGroup parent) { 

     View row = convertView; 
     RecordHolder holder = null; 

     if (row == null) { 
      LayoutInflater inflater = ((Activity)mcontext).getLayoutInflater(); 
      row = inflater.inflate(R.layout.custom_layout, parent, false); 
      holder = new RecordHolder(); 

      holder.tv_name=(TextView) row.findViewById(R.id.tv_name); 

    holder.btn_custom_delete=(Button) row.findViewById(R.id.btn_custom_delete); 

    holder.btn_custom_insert=(Button) row.findViewById(R.id.btn_custom_insert); 

      row.setTag(holder); 
     } else { 
      holder = (RecordHolder) row.getTag(); 
     } 

        holder.tv_name.setTag(position); 
        holder.btn_custom_delete.setTag(position); 

        holder.tv_name.setText(getItem(position)); 

        holder.tv_name.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View view) { 
          int pos = (Integer) view.getTag(); 

          Intent intent = new Intent(mcontext , ActionActivity.class); 
          // Here You can also get you position of arraylist or hashmap by pos i.e integer variable value. 

          startActivity(intent); 
         } 
        });     

        return row; 
} 
相關問題