首先,应用程序看起来像这样。
如何制作 - 如果我点击添加,在其列上文本视图将更新为值+ 1?
我在循环中创建TextView和Button;
for(int i = 0;i < playercountint; i++)
{
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,(100/playercountint)));
layout.setGravity(Gravity.CENTER_HORIZONTAL);
TextView tt = new TextView(this);
tt.setText("0");
tt.setTextSize(14);
tt.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tt.setGravity(Gravity.CENTER_HORIZONTAL);
Button btadd = new Button(this);
btadd.setText("Add");
btadd.setId(2);
btadd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
????? what here?
}
});
}
在onClick函数中应该写什么,所以只有在按钮列中的TextView值才会被更改。
有一个外部LinearLayout是水平方向的,而在循环中创建的是垂直线性布局。
也许我应该为1循环迭代创建一个模板?
答案 0 :(得分:2)
首先制作你的textview final
并在onClick
for(int i = 0;i < playercountint; i++)
{
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,(100/playercountint)));
layout.setGravity(Gravity.CENTER_HORIZONTAL);
final TextView tt = new TextView(this);
tt.setText("0");
tt.setTextSize(14);
tt.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tt.setGravity(Gravity.CENTER_HORIZONTAL);
Button btadd = new Button(this);
btadd.setText("Add");
btadd.setId(2);
btadd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
tt.setText(String.valueOf(Integer.parseInt(tt.getText())+1));
}
});
}
您可以编写一个返回linearlayout的函数:
public View getPlayerView(){
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,(100/playercountint)));
layout.setGravity(Gravity.CENTER_HORIZONTAL);
final TextView tt = new TextView(this);
tt.setText("0");
tt.setTextSize(14);
tt.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tt.setGravity(Gravity.CENTER_HORIZONTAL);
Button btadd = new Button(this);
btadd.setText("Add");
btadd.setId(2);
btadd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
tt.setText(String.valueOf(Integer.parseInt(tt.getText())+1));
}
});
layout.add(tt);
layout.add(btadd);
return layout;
}
循环调用此函数。
答案 1 :(得分:1)
tt.setText("something");
tt.invalidate();
我的坏我甚至没有注意到它是一个for循环呃你需要保持对文本视图的引用..让你的textview最终
答案 2 :(得分:1)
tt.setText(Integer.parse(tt.getText().toString()) + 1);
但是,我强烈建议您在* .xml文件中设计UI(布局)! 查看更多:http://developer.android.com/guide/topics/ui/declaring-layout.html
答案 3 :(得分:0)
您应该为TextView
提供唯一的id
(。setId(...))。有了这个,在你的onClick
方法中只需使用这样的东西:
final TextView tv = (TextView) findViewById(R.id.your_textview_id);
final String cur_text = tv.getText();
Integer plus_one = Integer.valueOf(cur_text);
plus_one++;
tv.setText(plus_one.toString());
没试过,但应该有用。
答案 4 :(得分:0)
static int counter = 0;
btn_Add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
counter ++;
tv_Display.setText("Your Total is : " + counter);
}
});