android - 如何使用外部开关盒的价值?
问题描述
我是 android studio 的新手,有一个问题。根据我的代码,我如何使用ii
和i
. 我想将它们加在一起并在 tv3 中显示,但始终为 0。我知道我应该在TextView
tv3 之前做点什么,但我不专业。
import android.support.annotation.IdRes;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
RadioGroup gr1,gr2;
Button driver;
int i,ii,iii;
TextView tv1;
TextView tv2;
TextView tv3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gr1=(RadioGroup)findViewById(R.id.g1);
gr2=(RadioGroup)findViewById(R.id.g2);
tv1=(TextView)findViewById(R.id.tv1);
tv2=(TextView)findViewById(R.id.tv2);
tv3=(TextView)findViewById(R.id.tv3);
driver=(Button) findViewById(R.id.driver);
gr1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId)
{
switch (checkedId){
case R.id.r1:
i=1;
tv1.setText(String.valueOf(i));
break;
case R.id.r2:
i=1-1;
tv1.setText(String.valueOf(i));
break;
}
}
});
gr2.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId)
{
switch (checkedId){
case R.id.r3:
ii=1;
tv2.setText(String.valueOf(ii));
break;
case R.id.r4:
ii=1-1;
tv2.setText(String.valueOf(ii));;
break;
}
}
});
tv3.setText(String.valueOf(iii));
driver.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (iii==2){
Toast.makeText(MainActivity.this, "Complete",
Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "InComplete",
Toast.LENGTH_SHORT).show();
}
}
});
}
}
解决方案
将您tv3.setText(String.valueOf(iii));
的放在 switch case 代码块之后。
如果执行任何时间切换案例,则 tv3 将显示 iii 的新值。如果要添加 i 和 ii 则只需在 setText() 之前添加它们
gr2.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
switch (checkedId) {
case R.id.r3:
ii = 1;
tv2.setText(String.valueOf(ii));
break;
case R.id.r4:
ii = 1 - 1;
tv2.setText(String.valueOf(ii));
break;
}
// add value
iii = i + ii;
tv3.setText(String.valueOf(iii));
}
});
推荐阅读
- html - 如何在输入标签中添加边距
- python - 遍历列表以在 if 语句中查找子字符串
- python - 有没有办法训练一个 CNN 模型,保存这个 CNN 的权重,然后使用这个权重重新训练这个 CNN 以获得其他训练数据?
- mysql - 字符串数据,右截断:1406 Data too long for column
- json - Swift - 解码数组 JSON 数据的数组
- vb.net - 有没有更简洁的方式在这里使用 Select Case?
- r - 每个主题的单一 ID - tidyverse
- java - 如何在javafx中显示和隐藏图像几秒钟
- php - Php Laravel 更新数据时添加了新记录
- database - Laravel:如何使用表中的外键更新布尔值