我收到错误(见图片)
我无法弄清楚发生了什么。它字面上说我的RadioGroup不能转换为TextView?但为什么 ? R.id.myMessage不是RadioButtom!
活动
public class Ch7_JoshRadioGroup extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView myMessage = (TextView) findViewById(R.id.myMessage);
// Gestion du bouton "Hello, Joshua"
Button myButton = (Button) findViewById(R.id.myButton);
myButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// View est un type générale
// v est le bouton dans ce contexte-ci
//Button thisOne = (Button) v;
//thisOne.setText("You pushed this button!");
// Envoi un toast d'une longue durée lorsque le bouton est appuyé
Toast.makeText(Ch7_JoshRadioGroup.this, "test", Toast.LENGTH_LONG);
}
});
}
}
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/myMessage"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello_joshua"
android:id="@+id/myButton"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:background="#ff0000"
android:textColor="#000000"
android:text="red"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:background="#00ff00"
android:textColor="#000000"
android:text="green"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:background="#0000ff"
android:textColor="#000000"
android:text="blue"
/>
</LinearLayout>
<RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/myRadioGroup"
android:orientation="horizontal">
<RadioButton
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="35dp"
android:layout_weight="1"
android:id="@+id/myRadioButtonRed"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="35dp"
android:layout_weight="1"
android:id="@+id/myRadioButtonGreen"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="35dp"
android:layout_weight="1"
android:id="@+id/myRadioButtonBlue"
/>
</RadioGroup>
</LinearLayout>
答案 0 :(得分:1)
删除xml中的内容。如果你不使用。
我假设您要设置按钮的文本
按钮myButton =(按钮)findViewById(R.id.myButton);
myButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
myButton.seText("You pushed this button");
// Envoi un toast d'une longue durée lorsque le bouton est appuyé
Toast.makeText(Ch7_JoshRadioGroup.this, "test", Toast.LENGTH_LONG);
}
}
执行此操作时,请尝试清理项目Project -> Clean select the project and hit OK
。
编辑:如果你不需要RadioGroup
,你的xml应该是这样的<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/myMessage"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello_joshua"
android:id="@+id/myButton"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:background="#ff0000"
android:textColor="#000000"
android:text="red"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:background="#00ff00"
android:textColor="#000000"
android:text="green"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:background="#0000ff"
android:textColor="#000000"
android:text="blue"
/>
</LinearLayout>
</LinearLayout>
答案 1 :(得分:1)
这应该解决它。
Project->Clean->Clean All Projects [OK]
Run->Run
答案 2 :(得分:0)
你不应该在函数范围内使用findViewById吗?试试这个:
// Gestion du bouton "Hello, Joshua"
Button myButton = null;
myButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
myButton = (Button) findViewById(R.id.myButton)
// View est un type générale
// v est le bouton dans ce contexte-ci
//Button thisOne = (Button) v;
//thisOne.setText("You pushed this button!");
// Envoi un toast d'une longue durée lorsque le bouton est appuyé
Toast.makeText(Ch7_JoshRadioGroup.this, "test", Toast.LENGTH_LONG);
}
});