我有两个 Activity ;第一个 Activity 开始第二个 Activity ,其中一些数据通过 Intent 传递。
Intent i = new Intent(this,BActivity.class);
i.putExtra("identify", "c2f");
startActivityForResult(i, 1);
在第二个 Activity 中,我想根据第一个 Activity 传递的信息使一些 TextViews/EditTexts 可见(最初设置为不可见)。
代码如下:
tv1 = (TextView)findViewById(R.id.textView2);
tv2 = (TextView)findViewById(R.id.textView3);
et1 = (EditText)findViewById(R.id.editText1);
et2 = (EditText)findViewById(R.id.editText2);
button = (Button)findViewById(R.id.send_result);
Bundle extras = getIntent().getExtras();
String identifier = extras.getString("identify");
if(identifier == "c2f")
{
tv1.setVisibility(0);
tv1.setText("Celcius");
et1.setVisibility(0);
}
else if(identifier == "f2c")
{
tv1.setVisibility(0);
tv1.setText("Fahrenheit");
et1.setVisibility(0);
}
else if(identifier == "currency")
{
tv1.setVisibility(0);
tv1.setText("Amount");
tv2.setVisibility(0);
tv2.setText("Conv. Rate");
et1.setVisibility(0);
et2.setVisibility(0);
}
现在,当第二个 Activity 开始时,这些 TextView 或 EditText 似乎都不可见!
标识符(字符串)保存从第一个 Activity 传递的正确值,它甚至进入 if 条件,但它不会使任何 View 可见。
我在尝试使这些 View 可见时是否犯了任何错误?
最佳答案
使用.equals
代替==
进行字符串比较。您还可以在带引号的字符串后使用变量来避免空指针。并且你可以使用TextView.VISIBLE
,它是一个常量来让它可见。
if("c2f".equals(identifier))
{
tv1.setVisibility(TextView.VISIBLE);
tv1.setText("Celcius");
et1.setVisibility(TextView.VISIBLE);
}
关于java - 在 java (Android) 中使 TextView 在运行时可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709217/