Java 从非活动类启动新活动
我知道有很多这样的问题,但我没有找到答案 我所拥有的:Java 从非活动类启动新活动,java,android,android-activity,android-intent,Java,Android,Android Activity,Android Intent,我知道有很多这样的问题,但我没有找到答案 我所拥有的: GridView+AButtonAdapter类,该类还具有一个OnClickListener类,用于获取GridView上的哪个按钮处于按下状态。(您可以在这里看到基本结构:) 我需要什么: 我需要从我的OnClickListener类开始一个新的活动。正如我所知,我只能在我的主活动类(或扩展活动的其他类)中实现它,但这正是我真正需要的。 我只知道这个结构: Intent i = new Intent(MyMain.this, MyNew
OnClickListener
类开始一个新的活动。正如我所知,我只能在我的主活动类(或扩展活动
的其他类)中实现它,但这正是我真正需要的。
我只知道这个结构:
Intent i = new Intent(MyMain.this, MyNewActivity.class)
startActivity(i);
我希望能够从我的OnClickListener
类中使用此结构。在按钮适配器中
构造函数传递构建适配器的活动的上下文,然后使用该上下文启动新的活动
编辑:
按照该教程,当您构建适配器时,您将执行以下操作:
ButtonAdapter adapter = new ButtonAdapter(this);// this is the activity(if you create in an activity the adapter)
btn.setOnClickListener(new MyOnClickListener(position, mContext));
您在按钮适配器的构造函数中获得的上下文
,您将把它传递给您的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);
}
}
然后像这样使用它:
ButtonAdapter adapter = new ButtonAdapter(this);// this is the activity(if you create in an activity the adapter)
btn.setOnClickListener(new MyOnClickListener(position, mContext));
在按钮适配器中
构造函数传递构建适配器的活动的上下文
,然后使用该上下文
启动新的活动
编辑:
按照该教程,当您构建适配器时,您将执行以下操作:
ButtonAdapter adapter = new ButtonAdapter(this);// this is the activity(if you create in an activity the adapter)
btn.setOnClickListener(new MyOnClickListener(position, mContext));
您在按钮适配器的构造函数中获得的上下文
,您将把它传递给您的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);
}
}
然后像这样使用它:
ButtonAdapter adapter = new ButtonAdapter(this);// this is the activity(if you create in an activity the adapter)
btn.setOnClickListener(new MyOnClickListener(position, mContext));
因为MyOnClickListener.onClick()中有View对象,所以只需使用View.getContext()即可(http://developer.android.com/reference/android/view/View.html#getContext())获取上下文对象并启动另一个活动。因为MyOnClickListener.onClick()中有View对象,所以只需使用View.getContext()即可(http://developer.android.com/reference/android/view/View.html#getContext())获取上下文对象并启动另一个活动。找不到如何传递活动的上下文,请编写一些示例代码好吗?找不到如何传递活动的上下文,请编写一些示例代码好吗?