gpt4 book ai didi

android - 如何从自定义 ListView 适配器传递 Intent Extra?

转载 作者:搜寻专家 更新时间:2023-11-01 08:51:17 27 4
gpt4 key购买 nike

我查看并搜索了其他似乎说明以下内容的示例。

在 Array Adapter 中确保声明了 Context

Context context;

public ListViewJobAdapter(Context context, ArrayList jobItemsArrayList) {

super(context, R.layout.tab3_list_row, jobItemsArrayList);
this.context = context;
}

我覆盖了 ListView 适配器的 GetView。在其中我有一个 textView onClick 操作,它启动一个带有附加功能的新 Activity 。

@Override
public View getView(final int position, View convertView, ViewGroup parent) {

textView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

Intent intentEditJob = new Intent(context,ActivityJobEdit.class);
intentEditJob.putExtra("JOBID", "TEST");
context.startActivity(intentEditJob);

现在 Actvitiy 开始了,但是 Extras 还没有通过。

    Intent intentExtras = getIntent();
String editJobID = intentExtras.getStringExtra("JOBID");

在客户 ListView Adapter 中,如果我在 getView 之外调用 Intent 函数,它就会工作并且传递 Extra。不确定为什么在引用上下文时这在 GetView 的 onClick 中不起作用?现在,我将使用在 GetView 外部调用它的解决方法。

public void callEditActivity(){
Intent intentEditJob = new Intent(context,ActivityJobEdit.class);
intentEditJob.putExtra("TEST", "JOBID");
context.startActivity(intentEditJob);
}

最佳答案

您似乎与用于存储和检索值的键不一致。

putExtra 方法接受键作为第一个参数,值作为第二个参数。根据您所写的内容,我假设“JOBID”是关键,但在 callEditActivity 中您使用“TEST”作为关键。

确保您与此保持一致,一切都会对齐到位。

要设置额外的 Intent 参数,请使用:

intentEditJob.putExtra("JOBID", "TEST");

要检索额外的 Intent 参数,请使用:

String editJobID = intentExtras.getStringExtra("JOBID");   

关于android - 如何从自定义 ListView 适配器传递 Intent Extra?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23180500/

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