gpt4 book ai didi

java - 如何从自定义View(Java类)正确启动Activity?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:43 26 4
gpt4 key购买 nike

我正在尝试定义一个自定义 Java 类(扩展 LinearLayout),它需要在点击时启动一个 Activity 。我的代码如下所示:

public ArizaSatiri(Context context/*, AttributeSet attrs , final Activity aktivite*/ , JSONObject mysql_satiri)
{
super(context/*, attrs*/);

// code to initialize my view :

final Context finalContext = context;

this.setOnClickListener(new OnClickListener() {@Override
public void onClick(View v) {
Intent newIntent = new Intent(finalContext, ArizaDetaylari.class);
finalContext.startActivity(newIntent);
}//onClick
});


}

但是当我点击实例化 View 时,我得到了错误:

Calling startActivity() from outside of an Activity  context requires the  
FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

正如您从代码中看到的那样,我尝试将 Activity 传递给构造函数,并且成功了。但这是正确的方法吗?您会推荐哪种方式?

编辑:

我还需要在某个时候调用 setTypeFace()。我应该为此使用上下文还是 Activity ?

最佳答案

试试这个:

this.setOnClickListener(new OnClickListener() {@Override
public void onClick(View v) {
Intent newIntent = new Intent(finalContext, ArizaDetaylari.class);
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
finalContext.startActivity(newIntent);
}//onClick
});

关于java - 如何从自定义View(Java类)正确启动Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19830767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com