Попробуйте следующий код.
Решение 1
Вы должны передать context
при инициализации адаптера в MainActivity
.
InMainActivity.this
:
XyzAdapter adapter = new XyzAdapter(MainActivity.this, .. ..)
В вашем Adapter
:
private Context mContext;
public XyzAdapter(Context context .. ..){
mContext = context;
}
И тогда вы можете сделать, как показано ниже:
public void onClick(View v) {
String name=listItemData.get(i).getName();
Intent intent = Intent(mContext, SecondActivity.class);
intent.putExtra("NAME", name);
mContext.startActivity(intent);
}
Решение 2
Другой вариант - interface
Создайте interface
, как показано ниже:
public interface AdapterInterface {
public void buttonPressed();
}
Теперь в вашем адаптере:
AdapterInterface buttonListener;
public XyzAdapter(Context context, AdapterInterface buttonListener)
{
super(context,c,flags);
this.buttonListener = buttonListener;
}
public void onClick(View v) {
buttonListener.buttonPressed()
}
В вашем Activity
:
AdapterInterface buttonListener;
public MainActivity extends AppCompactActivity implements AdapterInterface{
в onCreate
buttonListener = this;
XyzAdapter adapter = new XyzAdapter(MainActivity.this, buttonListener .. ..)
@Override
public void buttonPressed(){
// here you have to do once your click perform
}