1 回答

TA貢獻1820條經驗 獲得超10個贊
您不應該在 MainActivity 中調用該方法。如果您需要該方法,可以使用接口進行通信。我給你舉了一個例子。您必須首先創建一個接口。
public interface ICustomAdapterListener {
void openContactDetail(String currName, String currNumber);
}
那么你應該在活動中使用它。
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);
}
};
為了訪問活動中定義的接口,我們需要向適配器提供接口對象。
我們可以使用 CustomAdapter 的構造函數來實現這一點。
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());
}
}
});
添加回答
舉報