사용자 지정 어댑터를 사용하여 listview를 가지고 있는데 어댑터에 TextViews
과 ImageButton
이 포함되어 있습니다. 목록에는 내 클래스 Firm
의 개체가 포함되어 있습니다. 사용자가 ImageButton
을 누르면 get()-method
을 사용하여 Firm
개체에서 정보를 얻고 싶습니다.Listview의 사용자 지정 어댑터에서 개체 변수를 가져 오는 중
내 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()
메서드
하지만 작동하지 않습니다. 아무도 내가이 일을 어떻게 완료 할 수 있는지 안다? 미리 감사드립니다. 잘못, 나는 버튼이 ImageButton
보다는 일반 Button
것을 잊어 무슨
UPDATE는
나는 발견했습니다. 그러나 객체 수를 어떻게 얻을 수 있습니까? My Toast는 모든 객체를 기반으로 getNumber() 메소드에서 난수를 생성합니다. 예를 들어 내 목록에서 위치 3에있는 객체의 수를 지정해야합니다.
오류가 있습니까? –
내 편집을보세요 :) –
나는 당신을 얻지 못했습니까? –