2016-04-10 5 views
-2

ここは私のカスタムアダプターです。ここでlistviewの各行のテキストフィールドの番号を使用してこの番号に電話をかけるにはどうすればよいですか?

public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View row=inflater.inflate(R.layout.single_row, parent, false); 
    ImageView myImage= (ImageView) row.findViewById(R.id.imageView); 
    TextView myNames= (TextView) row.findViewById(R.id.contact_name); 
    TextView myNumbers= (TextView) row.findViewById(R.id.contact_num); 
    Button btn= (Button) row.findViewById(R.id.caller_button); 
    myImage.setImageResource(images[position]); 
    myNames.setText(nameArray[position]); 
    myNumbers.setText(numberArray[position]); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

     } 
    }); 
    return row; 
} 
} 
+1

ご質問は明確ではありません: '( – uguboz

+0

あなたは既に各行が検出する位置がありますので、指定された位置の項目を呼び出すことができます。 – uguboz

+0

私はリストビューを作成しました。そこには、各行に名前、電話番号、ボタンが含まれています。ボタンを押してその番号に電話をかけたい。 – ashik

答えて

0

は、私が何をすべきかです:

private class MyAdapter extends BaseAdapter { 
    private ListView listView; 
    ... 
    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     this.listView = (ListView) viewGroup; 

し、各View.OnClickListenerに私は、アダプタGetViewメソッドで

@Override 
public void onClick(View view) { 
    ... 
    MyAdapter.this.listView.getPositionForView((View) view.getParent())); 
0

使用これをすることによってクリックされたアイテムの位置を取得することができます:

yourViewHolder.callBtn.setOnClickListener(new View.OnClickListener(View view){ 

String callNum=yourViewHolder.textField.getText().toString(); 
String callUri="tel:"+callNum; 
Intent callIntent = new Intent(Intent.ACTION_CALL); 
    callIntent.setData(Uri.parse(callUri)); 
    startActivity(callIntent); 
} 
); 
関連する問題