我的活动中遇到onClick
方法问题。我在layoutInflater
方法中使用onClick
并在按钮点击时将布局更改为另一个布局,这没关系。但我在onClick
中有自己的方法。它在第一次点击时不起作用。它只适用于第二次点击。
@Override
public void onClick(View v) {
getTextA();
mFrameLayout.removeAllViews();
LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = layoutInflater.inflate(R.layout.soru, null);
mFrameLayout.addView(v);
Button bt = new Button(this);
bt.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
mFrameLayout.addView(bt);
bt.setText(textA);
}
textA
来自getTextA()
方法,但在第二次点击时。为什么?有人可以帮帮我吗?
答案 0 :(得分:-1)
我解决了这个问题。问题在于onClick方法中的layoutinflater。所以我把layoutinflater代码放到新方法调用getQuestion()。并在我的getTextA()方法中调用getQuestion()方法。它解决了。
我使用layoutinflater,因为这个方法仍然在片段中。使用新片段会导致Nestedfragments。谢谢你的回答。
这是代码
public void onClick(View v) {
getTextA();
}`
public void getTextA(){
//Method details.
getQuestion();
}
public void getQuestion(){
mFrameLayout.removeAllViews();
LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = layoutInflater.inflate(R.layout.soru, null);
mFrameLayout.addView(v);
Button bt = new Button(this);
bt.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
mFrameLayout.addView(bt);
bt.setText(textA);
}