gpt4 book ai didi

android - 按钮 setOnClickListener on for 循环

转载 作者:太空狗 更新时间:2023-10-29 16:18:57 24 4
gpt4 key购买 nike

我有 10 个按钮,我想为所有按钮设置 OnClickListener。此外,单击任何按钮应用程序将进行另一项 Activity 。我只在 Activity 类上发布按钮的定义。我的代码;

Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
Button button3 = (Button) findViewById(R.id.button3);
Button button4 = (Button) findViewById(R.id.button4);
Button button5 = (Button) findViewById(R.id.button5);
Button button6 = (Button) findViewById(R.id.button6);
Button button7 = (Button) findViewById(R.id.button7);
Button button8 = (Button) findViewById(R.id.button8);
Button button9 = (Button) findViewById(R.id.button9);
Button button10 = (Button) findViewById(R.id.button10);
Button buttons[] = {button1, button2, button3, button4, button5, button6, button7, button8, button9, button10};
final String urlOfButtons[] = {"","","","","","","","","","",""};
final String titles[] = {"","","","","","","","","","",""};

JsonNode itemNode = jsonNode.path("Docs");
for(int i=0 ; i<itemNode.size() ; i++){
titles[i] = itemNode.get(i).path("Text").asText();
title = titles[i];
buttons[i].setText(title);
urlOfButtons[i] = itemNode.get(i).path("Link").asText();
url = urlOfButtons[i];
buttons[i].setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(HouseDetail.this, HouseDetailPdf.class);
intent.putExtra("title", title);
intent.putExtra("url", url);
startActivity(intent);
}
});
}

这通常只采用 title 和 url 的最后一个值。字符串 url,标题定义在类之上。我单击相同值的每个按钮都会转到其他 Activity 。我想要 10 个不同的值来添加额外的值。所以我想添加而不是标题和网址; titles[i] 和 url[i] 作为额外的。我希望我很清楚。

最佳答案

您可以将titleurl 设置为每个按钮的标签

buttons[i].setTag(1, title);
buttons[i].setTag(2, url);

并在 onClick 中检索标签

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(HouseDetail.this, HouseDetailPdf.class);
intent.putExtra("title", v.getTag(1));
intent.putExtra("url", v.getTag(2));
startActivity(intent);
}

否则你可以这样做。将 index 存储为标签,以便在 button 按下时可以获取 index点击。

buttons[i].setTag(i);

获取存储为标签index

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int position = Integer.parseInt(v.getTag().toString());
Intent intent = new Intent(HouseDetail.this, HouseDetailPdf.class);
intent.putExtra("title", titles[position]);
intent.putExtra("url", urlOfButtons[position]);
startActivity(intent);
}

关于android - 按钮 setOnClickListener on for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20468935/

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