カスタムアダプタを使用したリストビューがあり、アダプタにはTextViews
とImageButton
の2つが含まれています。リストには私のクラスFirm
のオブジェクトが含まれています。ユーザがImageButton
を押すと、get()-method
を使用してFirm
オブジェクトから情報を取得したいと考えています。リストビュー内のカスタムアダプタ
マイCustomAdapter getView()
機能で
import java.util.Vector;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class CustomAdapter extends ArrayAdapter<Firm>
{
Context context;
int layoutResourceId;
static String datesort;
ImageButton call;
Firm mrb;
Firm currentMRB;
Vector<Firm> data;
/** Called when the activity is first created. */
// TODO Auto-generated constructor stub
public CustomAdapter(Context context, int layoutResourceId, Vector<Firm> data)
{
super(context,layoutResourceId,data);
this.layoutResourceId = layoutResourceId;
this.context=context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
MyStringReaderHolder holder;
if(row==null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent,false);
holder= new MyStringReaderHolder();
holder.gtumcaTvFirstName =(TextView)row.findViewById(R.id.gtumcaTvFirstName);
holder.gtumcaTvLastName =(TextView)row.findViewById(R.id.gtumcaTvLastName);
call = (ImageButton)row.findViewById(R.id.imageButton1);
row.setTag(holder);
}
else
{
holder=(MyStringReaderHolder) row.getTag();
}
mrb =data.elementAt(position);
System.out.println("Position="+position);
holder.gtumcaTvFirstName.setText(mrb.getCompanyName());
int price = (int)mrb.getPrice();
String priceString = Integer.toString(price);
holder.gtumcaTvLastName.setText(priceString);
call.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Toast.makeText(context, mrb.getNumber(), Toast.LENGTH_LONG).show();
}
});
return row;
}
ルックの下にいくつかのCodesnippets、これは、ユーザがアイテムのいずれかを押したときに、私が実行したいOnClickListener()
メソッドが含まれていますListView
の場合、関数はToast
をオブジェクトのget()
メソッド
しかし、動作しません。どのように私はこの作業を完了することができます誰も知っていますか?前もって感謝します。私はいただきました!間違っていることがわかりました
UPDATE
、私はボタンがImageButton
ではなく、定期的なButton
たことを忘れていました。しかし、どのようにオブジェクト番号を取得できますか? My Toastは、すべてのオブジェクトに基づいてgetNumber()メソッドから乱数を生成します。より具体的には、私のリスト内のオブジェクトの位置番号3などのオブジェクトの番号が必要です。
エラーが発生していますか? –
私の編集を見てください:) –
私はあなたを取得しませんでしたか? –