從我的理解你正在尋找一些像這樣的事情,更改這樣的類,
public class Item {
private int id;
private ItemListAdapter.ClickListener mClickListener;
public Item(int id) {
this.id = id;
}
public Item(int id, @NonNull ItemListAdapter.ClickListener clickListener) {
this.id = id;
this.mClickListener = clickListener;
}
public Item setOnClickListener(@NonNull ItemListAdapter.ClickListener clickListener) {
this.mClickListener = clickListener;
return this;
}
public ItemListAdapter.ClickListener getClickListener() {
return this.mClickListener;
}
}
適配器類
import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
public class ItemListAdapter extends ArrayAdapter<Item> {
public ItemListAdapter(Context context, int resource) {
super(context, resource, SettingsStorage.getInstance().getItems());
}
@NonNull
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.item, parent, false);
}
final Item item = getItem(position);
LinearLayout linearLayout = (LinearLayout) convertView.findViewById(R.id.item);
linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (item.getClickListener() != null) {
item.getClickListener().onClick();
}
}
});
return convertView;
}
public interface ClickListener {
void onClick();
}
}
,你可以設置監聽器e這,
Item item1 = new Item(1);
item1.setOnClickListener(new ItemListAdapter.ClickListener() {
@Override
public void onClick() {
Toast.makeText(MainActivity.this, "It works", Toast.LENGTH_SHORT).show();
}
});
Item item2 = new Item(2, new ItemListAdapter.ClickListener() {
@Override
public void onClick() {
}
});
你想用邏輯完全做什麼? – Krish
我編輯了我的問題,也許這解釋了我確切需要的 – Jason
爲什麼在活動中實現ClickListener?有什麼理由嗎? – Krish