2012-10-22 4 views
1

Как передать имя переменной int во всплывающее окно при щелчке изображения? Я установил int для изображения, и у меня есть много изображений, которые я установил.Android, Как передать имя переменной int в popupwindow?

Вот как я использую int в textView в PopupWindow.

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 сохранить фактическое значение. После этого вы можете связать каждую кнопку/ImaveView с этим объектом с помощью метода view.setTag и получить значение с помощью метода 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, которые я установил в horizontalView/imageViews. INT, который я пытаюсь передать popupview, является ссылкой на изображение, которое было нажато. Я передаю имя переменной iNT, чтобы я мог увеличивать ее, когда я нажимаю кнопку с помощью всплывающего окна. В основном, я реализую кнопку LKE для изображения, которое я нажимаю. –

+0

@LouisWasserman У меня бы получилось, но я не смог найти ссылку «добавить комментарий» на сообщение OP. Я не думаю, что у меня есть привилегия комментировать сообщения других людей. – hiBrianLee

Смежные вопросы