gpt4 book ai didi

java - Android,如何将 int 变量的名称传递给弹出窗口?

转载 作者:行者123 更新时间:2023-12-01 05:03:42 25 4
gpt4 key购买 nike

当单击图像时,如何将 int 变量的名称传递给弹出窗口?我已经为每个图像设置了一个 int,并且我设置了很多图像。

这就是我在 PopupWindow 上的 textView 中使用 int 的方式。

public boolean onLongClick(View v) {
// v.setTag(v);

case R.id.hsv1iv1:
ImageView ivpopup = (ImageView) popupView.findViewById(R.id.pv1);
intcount1++; // I would like to pass this int name to the popup window.
break;
case R.id.hsv2iv1:
ImageView ivpopup = (ImageView) popupView.findViewById(R.id.pv1);
intcount2++; // I would like to pass this int name to the popup window.
break;

LayoutInflater layoutInflater
= (LayoutInflater)getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.popup, null);
final PopupWindow popupWindow = new PopupWindow(
popupView,
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
popupWindow.update(0, 0, 800, 500);
ColorDrawable dw = new ColorDrawable(-005500);
popupWindow.setBackgroundDrawable(dw);
tvpwlikectr = (TextView) popupView.findViewById(R.id.liketv);


Button pwlikebtn = (Button) popupView.findViewById(R.id.pwlikebtn);

Button btnDismiss = (Button)popupView.findViewById(R.id.cancel);

pwlikebtn.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v) {

intcount1++;
tvpwlikectr.setText(Integer.toString(intcount1)); // this code doesn't work with the intcount1

}});
btnDismiss.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v) {

popupWindow.dismiss();

popupWindow.setTouchable(true);
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true);

}
}

最佳答案

您能解释一下如何设置每个图像的 INT 吗?复制并粘贴有关如何为每个图像设置 INT 的代码会很有帮助,因为不清楚为每个图像设置 INT 的含义。

另外,您对 int 变量的值还是变量的名称感兴趣?显示您如何设置大量图像(每个图像都有 int)将有助于阐明您想要做什么。

-- 在看到带有代码的更新帖子后添加答案 --

我将创建一个具有您感兴趣的名称(即 intcount1)的对象和一个用于保留实际值的 int 。之后,您可以使用 view.setTag 方法将每个按钮/ImaveView 与该对象关联,并通过 view.getTag 方法获取值。这是一个例子:

private class MyTag {
String mTagName;
int mCount;
MyTag(String tagName) {
mTagName = tagName;
mCount = 0;
}
}

// in your onCreate or initializaion code somewhere
ImageView view1 = (ImageView) popupView.findViewById(R.id.hsv1iv1);
MyTag imageTag = new MyTag("intcount1");
view1.setTag(imageTag);
ImageView view2 = (ImageView) popupView.findViewById(R.id.hsv1iv1);

// this will go wherever you handle the onLongClick
public boolean onLongClick(View v) {
Object tag = v.getTag();
if (tag instanceof MyTag) {
MyTag myTag = (MyTag) tag;
myTag.mCount++;
}
}

// I'm assuming you are setting the text from the actual clicked object
// so this will go wherever you are setting the text/handling the click
public void onClick(View v) {
Object tag = v.getTag();
if (tag instanceof MyTag) {
MyTag myTag = (MyTag) tag;
myTag.mCount++;
tvpwlikectr.setText(myTag.mTagName);
}
}

底线是,创建一个具有名称/计数值的对象,使用 view.setTag() 函数将每个 View 与其自己的对象关联起来,当需要读取值时,使用 view.getTag() 来获取对象并读取 mTagName(“变量”名称)和 mCount(“变量”值)。

关于java - Android,如何将 int 变量的名称传递给弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020457/

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