2012-10-22 56 views
1

如何在點擊圖像時將int變量的名稱傳遞給popupwindow?我已經爲每個圖像設置了一個int,並且我有很多我設置的圖像。Android,如何將int變量的名稱傳遞給popupwindow?

這就是我在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); 

} 
} 
+0

你真的認爲我們可以用一行代碼和這種無意義的解釋來理解你的問題嗎?什麼是彈出窗口?那是一個AlertDialog?你在說什麼? –

+0

這和你的問題類似嗎? http://stackoverflow.com/questions/13020457/android-how-to-pass-the-name-of-int-variable-to-a-popupwindow –

+0

@Waza_Be如果需要,我會盡量詳細說明。你的鏈接指的是同一個問題。 ?? –

回答

0

你能解釋一下你是如何設置每個圖像的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.getTag()獲取對象並讀取mTagName(「變量」名稱)和mCount(「變量」值)。

+0

這應該是一個評論,而不是一個答案。 –

+0

圖像來自drawable,我設置爲horizo​​ntalView/imageViews。我試圖傳遞給彈出窗口的INT是鏈接到點擊的圖像。我傳遞iNT變量的名稱,以便在按下彈出式窗口中的按鈕時增加它。基本上,我正在爲點擊的圖像實現一個LKE按鈕。 –

+0

@LouisWasserman我會,但我找不到OP的帖子上的「添加評論」鏈接。我不認爲我有權評論其他人的帖子。 – hiBrianLee