gpt4 book ai didi

android - 可以显示 toast 但不能启动 Activity

转载 作者:行者123 更新时间:2023-11-30 01:39:36 26 4
gpt4 key购买 nike

我正在使用一个适配器类来填充我的 ListView ,但是我的 ListView 中的每个项目都有两个 TextView ,我想为它们设置 OnClick 监听器。所以我将它设置在适配器类中,当我尝试显示 toast 时它工作正常。

但问题是我无法在 OnClickListener 中启动 Activity。应用程序崩溃。请帮助或建议实现相同目标的替代方法。该 Activity 已在 list 中提及。

这是我的代码:-

public class Adapter_NearMe_TyreWorx extends ArrayAdapter<List_NearMe> implements View.OnClickListener {
ArrayList<List_NearMe> arraylist;



private Context context;
private List<List`enter code here`_NearMe> list;
public Adapter_NearMe_TyreWorx(Context context, int resource, List<List_NearMe> objects) {
super(context, resource, objects);
this.context = context;
this.List = objects;
arraylist = new ArrayList<List_NearMe>();
arraylist.addAll(List);

}
TextView Btn_Call;
String Fac_landmark;
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.canvas_two, parent, false);
List_NearMe list= list.get(position);

String Fac_name=list.getName();
Fac_landmark=list.getLandmark();

String Fac_gMap=list.getgMap();
String Fac_contact=list.getContact();

TextView distance=(TextView)view.findViewById(R.id.fac_distance);
TextView Fac_Name=(TextView)view.findViewById(R.id.fac_name);
TextView Fac_Address=(TextView)view.findViewById(R.id.fac_address);
Btn_Call=(TextView)view.findViewById(R.id.btn_call);
TextView Btn_Go=(TextView)view.findViewById(R.id.btn_go);

Btn_Go.setOnClickListener(this);
return view;
}



public void onClick(View v) {
Toast.makeText(getContext(),"Toast text",LENGTH.SHORT).show(); //working toast code



Intent intent = new Intent(getContext(), SampleActivity.class);
getContext().startActivity(intent);

}
}

最佳答案

您必须添加一个 Intent 标志才能从非 Activity 类 Intent.FLAG_ACTIVITY_NEW_TASK 添加一个 Intent 标志,在 Intent 中添加这个标志会很好地尝试像这样传递您的 Intent :

Intent intent = new Intent(getContext(), SampleActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);

或者

Intent intent = new Intent(getContext(), SampleActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);

关于android - 可以显示 toast 但不能启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34675218/

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