1 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
您不應(yīng)該在 MainActivity 中調(diào)用該方法。如果您需要該方法,可以使用接口進(jìn)行通信。我給你舉了一個(gè)例子。您必須首先創(chuàng)建一個(gè)接口。
public interface ICustomAdapterListener {
void openContactDetail(String currName, String currNumber);
}
那么你應(yīng)該在活動(dòng)中使用它。
ICustomAdapterListener customAdapterListener = new ICustomAdapterListener() {
@Override
public void openContactDetail(String currName, String currNumber) {
Intent intent = new Intent(context, ContactDetails.class);
intent.putExtra("contactName", currName);
intent.putExtra("contactPhone", currNumber);
startActivity(intent);
}
};
為了訪問活動(dòng)中定義的接口,我們需要向適配器提供接口對象。
我們可以使用 CustomAdapter 的構(gòu)造函數(shù)來實(shí)現(xiàn)這一點(diǎn)。
private ICustomAdapterListener listener;
public CustomAdapter(ICustomAdapterListener listener) {
this.listener = listener;
}
最后
public View getView(final int position, View convertView, ViewGroup parent){
final ViewHolder holder;
holder.checkBox = (CheckBox) convertView.findViewById(R.id.cb);
holder.contactName = (TextView) convertView.findViewById(R.id.contact_name);
holder.contactName.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
//Toast.makeText(context, contactList.get(position).getName() + " selected at " + position, Toast.LENGTH_SHORT).show();
if (listener!=nul) {
listener.openContactDetail(contactList.get(position).getName(), contactList.get(position).getNumber());
}
}
});
添加回答
舉報(bào)