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

标签 android listview android-intent adapter

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

在数组适配器中确保声明了上下文

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适配器中,如果我在getView之外调用Intent函数,那么它就会工作并传递Extra。不确定为什么这在引用上下文时在 GetView 的 onClick 中不起作用?现在我将使用在 GetView 外部调用它的解决方法。

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

最佳答案

看来您与用于存储和检索值的 key 不一致。

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/

相关文章:

java - 在 Android 中选择列表项时使列表项在屏幕上居中?

android - 从 Alertdialog 启动另一个 Activity

android - 我们如何才能在 ListView 中显示永久的滚动条?

Java SAX 解析器和多个 ContentHandler

android - 如何解决 ListView 布局和 IME 预测文本之间的竞争条件

android - 如何检测电话何时被接听或拒绝

cordova - 添加深层链接到 cordova 应用程序

android - 在 cordova 插件的 AndroidManifest 中的 "application"标记处添加一个属性

qt - 动画 `positionViewAtIndex`

java - 使用 List 填充 ListView