这是目标:1个textview,1个按钮。在textview中按下按钮文本后,编辑为新字符串。我试着像这样认识它,但它 不起作用。请帮忙。有1个活动,1个按钮,1个电视和多个按压来编辑文本。
public class Second extends AppCompatActivity {
TextView tv;
Button btn;
int i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second2);
tv = (TextView) findViewById(R.id.tv);
btn = (Button) findViewById(R.id.btn);
i = 1;
tv.setText(R.string.s1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for (i=1;i<28;i++);{
switch (i){
case 1:tv.setText(R.string.s1);
break;
case 2:tv.setText(R.string.s2);
break;
case 3:tv.setText(R.string.s3);
break;
case 4:tv.setText(R.string.s4);
break;
case 5:tv.setText(R.string.s5);
break;
case 6:tv.setText(R.string.s6);
break;
case 7:tv.setBackgroundResource(R.drawable.tigs);
tv.setHeight(430);
tv.setWidth(350);
tv.setText(R.string.s6_1);
break;
default:break;
我做错了什么?
答案 0 :(得分:0)
真的,这不值得回答,但我很无聊......
判断你的代码,你最好再做一些Java和Android教程。 stackoverflow也不是这类问题的社区!
首先,我作为一个全局变量是无用的,也是onCreate中的初始化,因为你在onClick函数中覆盖了i。 然后你有一个for循环,然后是一个switch case,所以你执行case 1到7都是一个接一个。 您的程序所做的是将文本更改6次(情况1到6),然后最终执行情况7,您可以在其中设置背景,更改尺寸并设置文本视图的文本R.string.s6_1。 所有这一切发生得如此之快,以至于每次按下按钮都会看到案例7。
我真的不知道你想要存档什么,但这就是你的程序所做的。
修改强>
@ ded-logoped我认为这就是你要找的东西:
public class Second extends AppCompatActivity {
private TextView tv;
private Button btn;
private int i; // bad name as i is usually used in loops
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second2);
tv = (TextView) findViewById(R.id.tv);
btn = (Button) findViewById(R.id.btn);
i = 1;
tv.setText(R.string.s1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// deleted the loop here
switch (i){
case 1: tv.setText(R.string.s1); break;
case 2: tv.setText(R.string.s2); break;
case 3: tv.setText(R.string.s3); break;
case 4: tv.setText(R.string.s4); break;
case 5: tv.setText(R.string.s5); break;
case 6: tv.setText(R.string.s6); break;
case 7:
tv.setBackgroundResource(R.drawable.tigs);
tv.setHeight(430);
tv.setWidth(350);
tv.setText(R.string.s6_1);
break;
default: break;
}
});
}
}
每按一下按钮,文字就会改变。直到背景改变然后它保持不变。
答案 1 :(得分:0)