2017-02-23 47 views
0

我有一個按鈕的列表視圖,我試圖烤麪包的文本,這將是文本與id移動的文本,當用戶點擊列表項的按鈕 。 我的視圖類如下,當我點擊按鈕應用程序關閉和重新啓動。ListView按鈕單擊麪包textview文本

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

    View v = convertView; 

    if (v == null) { 
     holder = new ViewHolder(); 
     v = vi.inflate(Resource, null); 
     holder.imageview = (ImageView) v.findViewById(R.id.photo); 
     holder.tvName = (TextView) v.findViewById(R.id.doctor); 
     holder.tvMobile = (TextView) v.findViewById(R.id.mobile); 

     Button btnCall = (Button) v.findViewById(R.id.btnCall); 
     btnCall.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       String message= ((TextView) view.findViewById(R.id.mobile)).getText().toString(); 
       Toast.makeText(view.getContext(), message, Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     v.setTag(holder); 
    } else { 
     holder = (ViewHolder) v.getTag(); 
    } 

    holder.imageview.setImageResource(R.drawable.noimage); 
    new DownloadImageTask(holder.imageview).execute(doctorList.get(position).getImage()); 
    holder.tvName.setText(doctorList.get(position).getName()); 
    holder.tvMobile.setText(doctorList.get(position).getMobile()); 
    return v; 
} 
+1

你可以請你發佈你的崩潰日誌? –

+0

嘗試用'holder.tvMobile.getText()。toString()'替換'((TextView)view.findViewById(R.id.mobile))。getText()。toString()'' –

+0

耶!請分享錯誤日誌 – Kaushal28

回答

1

你做錯了: -

代替: -

 @Override 
     public void onClick(View view) { 
       String message= ((TextView) view.findViewById(R.id.mobile)).getText().toString(); 
       Toast.makeText(view.getContext(), message, Toast.LENGTH_SHORT).show(); 
     } 

你需要做的

@Override 
     public void onClick(View view) { 
      String message= ((TextView) v.findViewById(R.id.mobile).getText().toString(); 
      Toast.makeText(view.getContext(), message, Toast.LENGTH_SHORT).show(); 
     } 

因爲你移動文本視圖是不是一個孩子點擊按鈕,你試圖從錯誤的按鈕得到他的參考。