在android中,如何在事件发生后渲染窗口小部件。在这种情况下,事件可以是按下的单选按钮。按下渲染按钮后,屏幕上将呈现另一个窗口小部件(如文本视图或编辑框)。
依赖于事件的小部件,当前是在android layout xml文件中编写的。代码如下所示:
case R.id.radio_buttonID:
if(Checked) {
EditText Enter_Info = (EditText) findViewById(R.id.Enter_boxID);
TextView Display_Text = (TextView) findViewById(R.id.Sign_ID);
percentSign.setText(R.string.Word);
}
break;
以上是switch语句的一部分,该语句位于处理单选按钮的函数中。这样做的正确方法是什么?
答案 0 :(得分:0)
此示例代码将让您了解您计划实现的目标。您可以根据需要进行修改。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
public class Main2Activity extends AppCompatActivity {
private EditText Enter_Info;
private RadioButton radioButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Enter_Info = (EditText) findViewById(R.id.Enter_boxID);
Enter_Info.setVisibility(View.GONE);
radioButton = (RadioButton)findViewById(R.id.my_radio_button);
radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
Enter_Info.setVisibility(View.VISIBLE);
}else{
Enter_Info.setVisibility(View.GONE);
}
}
});
}
}
答案 1 :(得分:0)
继续前进并发布我所做的代码,遵循您使用的相同onClick代码模式,如果有人很难理解 setOnCheckedChangeListener 图案。
MainActivity
public class MainActivity extends AppCompatActivity {
private TextView tvSample;
private RadioButton rbSample;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
private void initViews() {
tvSample = (TextView) findViewById(R.id.tv_sample);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.rb_sample:
rbSample = (RadioButton) findViewById(v.getId());
if (rbSample.isChecked()) {
tvSample.setVisibility(View.VISIBLE);
}
break;
}
}
}
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_sample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:padding="2dp"
android:text="Sample Radio Button" />
<TextView
android:id="@+id/tv_sample"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Sample Text"
android:visibility="gone" />
</LinearLayout>
您可以在xml布局中替换想要出现在RadioButton旁边的View(TextView / EditText),只需先将VISIBILITY设置为GONE,然后在检查时将其动态设置为VISIBLE。如果你希望RadioButton在被检查后消失,只需将VISIBILITY设置为GONE动态。有关View元素的更多信息,您可以访问官方Android开发者网站 - View | Android Developers