我创建了一个布局。全部以编程方式完成。现在我有一个按钮,用于在单击时更改视图的可见性。坦白说,我不知道如何引用这个观点。
以下是代码的一部分:
//my button to show pop-up
Button btn_showPop = new Button(this);
btn_showPop.setText("Pop-up");
btn_showPop.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
btn_showPop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
hsv.post(new Runnable() {
@Override
public void run() {
if (Menu_Displayed) {
//pop-up
li_pop.setVisibility(View.VISIBLE); //how do I reference li_pop
} else {
//do nothing
}
}
});
}
});
// pop-up:
final LinearLayout li_pop = new LinearLayout(this);
li_pop.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
li_pop.setOrientation(1);// 1 is vertical
li_pop.setBackgroundColor(Color.LTGRAY);
li_pop.setVisibility(View.GONE);
li_pop.setClickable(true);
答案 0 :(得分:1)
更改代码以获取对动态创建的View
的引用班级第一decalre li_pop
LinearLayout li_pop;
创建时li_pop
的第二个设置ID为:
li_pop = new LinearLayout(this);
li_pop.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
li_pop.setId(599980); // set LinearLayout id here
现在您可以在按钮点击时引用li_pop
LinearLayout:
@Override
public void onClick(View v) {
hsv.post(new Runnable() {
@Override
public void run() {
if (Menu_Displayed) {
//pop-up
li_pop.setVisibility(View.VISIBLE);
//OR
LinearLayout li_popnew=(LinearLayout)findViewById(599980);
li_popnew.setVisibility(View.VISIBLE);
} else {
//do nothing
}
}
});
答案 1 :(得分:0)
移动线
final LinearLayout li_pop = new LinearLayout(this);
在参考之前。