java - onClick Textview 将另一个字符串传递给 intent

标签 java android android-intent onclicklistener

我让一个 TextView 可以点击。单击它时,将启动一个新的 Intent。

articleURL  [i].setText( articleURLArr                  [i] );
articleURL[i].setPaintFlags(articleURL[i].getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
articleURL[i].setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        System.out.println ( ((TextView) v).getText().toString() );
        Intent intent = new Intent(getActivity().getBaseContext(), WebViewing.class);
        intent.putExtra("sourceURL", ((TextView) v).getText().toString());
        startActivity(intent);
    }
});

但现在我想将另一个值传递给 Intent 。 来源[i]。于是我就这样试了一下

i.putExtra("source" , ((TextView) source[v.getId()]).getText().toString());

但这给了我一个 ArrayIndexOutOfBoundsException,index= -1。

如何在处理 onclick 时将另一个值传递给 Intent ?

最佳答案

在我看来,您有两种选择来解决这个问题:

1- 在您的点击监听器中使用 i。为此,您需要将其分配给最终变量。

final int index = i;
articleURL[i].setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        System.out.println ( ((TextView) v).getText().toString() );
        Intent i = new Intent(getActivity().getBaseContext(), WebViewing.class);
        i.putExtra("sourceURL", ((TextView) v).getText().toString());
        i.putExtra("source" , ((TextView) source[index]).getText().toString());
        startActivity(i);
    }
});

2- 将索引存储在 View 的标签中(不是 id):

articleURL[i].setTag(i);
articleURL[i].setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        System.out.println ( ((TextView) v).getText().toString() );
        Intent i = new Intent(getActivity().getBaseContext(), WebViewing.class);
        i.putExtra("sourceURL", ((TextView) v).getText().toString());
        i.putExtra("source" , ((TextView) source[Integer.parseInt(v.getTag())]).getText().toString());
        startActivity(i);
    }
});

关于java - onClick Textview 将另一个字符串传递给 intent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19423825/

相关文章:

android - Log.d 与 ActionBarScherlock

android - 将数据传递到广播接收器以获取 SMS 传送报告

java - 如何从以 latin1 编码的结果集中以 UTF-8 编码字符串

java - 如何在没有同步方法的情况下从不同的线程安全地刷新缓冲区?

java - 使按钮识别 JTextField 中的文本

java - java中使用plink的问题

java - 调用removeCallbacksAndMessages(null)后处理程序不会结束

Android从rfid标签读取实际数据

Android Intent 检查/查看电子邮件

android - 即使传递的对象不为空,getParcelable 也返回空