2017-02-23 17 views
0

私はボタンでリストビューを表示しています。ユーザがリストアイテムの ボタンをクリックすると、idViewでテキストビューのテキストになるテキストをトーストしようとしています。 マイビュークラスは以下の通りであると私は、ボタンのアプリをクリックしたときには、ANSの再起動を閉じます。ListViewボタンをクリックしてテキストを表示するテキストを表示

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

。のgetText()((のTextView)view.findViewById(R.id.mobile)) '交換してみてください。()') 'holder.tvMobile.getText(とのtoString。のtoString()' –

+0

ええ!それは働いていたが、時にボタンをクリックすると、それは常に最後のリスト項目の携帯ではなく、彼は現在のボタンのいずれかを示し、エラー・ログに – Kaushal28

答えて

1

あなたは間違ってそれをやっている: - 代わりの

: -

あなたは携帯電話のテキストビューの子ではありませんので

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

を行う必要があり

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

あなたは間違ったボタンから参照を取得しようとしています。

関連する問題