我知道很多像这样的问题,但我找不到答案。
我有什么:
我需要什么:
我需要从我的Activity
课程开始新的OnClickListener
。据我所知,我只能在我的主要活动类(或其他扩展Activity
的类)中进行,但这是我真正需要的。
我只知道这种结构:
Intent i = new Intent(MyMain.this, MyNewActivity.class)
startActivity(i);
我希望能够在我的OnClickListener
课程中使用此结构。
答案 0 :(得分:3)
在ButtonAdapter
构造函数中,传递构建适配器的Activity
的上下文,然后使用Context
启动新的Activity
。
修改强> 在构建适配器之后,您将执行以下操作:
ButtonAdapter adapter = new ButtonAdapter(this);// this is the activity(if you create in an activity the adapter)
您在Context
的构造函数中获得的ButtonAdapter
,您会将其传递给OnClickListener
:
class MyOnClickListener implements OnClickListener
{
private final int position;
private Context ctx;
public MyOnClickListener(int position, Context ctx)
{
this.position = position;
this.ctx = ctx;
}
public void onClick(View v)
{
// Preform a function based on the position
someFunction(this.position)
Intent i = new Intent(MyMain.this, MyNewActivity.class)
ctx.startActivity(i);
}
}
并像这样使用它:
btn.setOnClickListener(new MyOnClickListener(position, mContext));
答案 1 :(得分:0)
由于您在MyOnClickListener.onClick()中有View对象,因此您只需使用View.getContext()(http://developer.android.com/reference/android/view/View.html#getContext())即可获取上下文对象并开始另一个活动。