gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:31:19 24 4
gpt4 key购买 nike

我让一个 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/

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