无论我尝试过,我都看不到底部的按钮。顶部应该有一个TextView,下面应该有六个按钮。但不知何故,我看不到它们。我看了here,还看了here,但他们没有帮助。请告诉我,有什么问题?这是我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="23dp"
android:layout_marginTop="17dp"
android:text="TextView" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_marginLeft="74dp"
android:layout_marginTop="64dp"
android:layout_toRightOf="@+id/textView1"
android:text="@string/bttn_aux1"
android:onClick="is_clicked" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button1"
android:text="@string/bttn_aux2"
android:onClick="can_clicked" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button2"
android:layout_below="@+id/button2"
android:text="@string/bttn_aux3"
android:onClick="must_clicked" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button3"
android:layout_below="@+id/button3"
android:text="@string/bttn_aux4"
android:onClick="do_clicked" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button4"
android:layout_below="@+id/button4"
android:text="@string/bttn_aux5"
android:onClick="will_clicked" />
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button5"
android:layout_below="@+id/button5"
android:text="@string/bttn_aux6"
android:onClick="has_clicked" />
</RelativeLayout>
编辑:这也是我的活动:
public class AuxilaryVerbs extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auxilary);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRAMESSAGE_MAIN);
TextView textView = new TextView(this);
textView.setTextSize(30);
textView.setText(message);
setContentView(textView);
}
public void is_clicked(View view) {
}
public void can_clicked(View view) {
}
public void must_clicked(View view) {
}
public void do_clicked(View view) {
}
public void will_clicked(View view) {
}
public void has_clicked(View view) {
}
}
答案 0 :(得分:4)
Eclipse自动xml生成器添加了许多您不需要的额外属性,当您尝试手动编辑它时,您会迷路。
首先将RelativeLaout替换为LinearLayout并使其垂直,这将使其更简单。然后删除所有layout_toRightOf,left,below etc属性并使其变得简单。然后你会看到你所有的按钮。但是,如果没有足够的空间在设备中显示所有内容,则必须在ScrollView中放置按钮,以便滚动并获取所有按钮。
我尝试更新xml(可能存在一些拼写错误)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="23dp"
android:layout_marginTop="17dp"
android:text="TextView" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="74dp"
android:layout_marginTop="64dp"
android:text="@string/bttn_aux1"
android:onClick="is_clicked" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/bttn_aux2"
android:onClick="can_clicked" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/bttn_aux3"
android:onClick="must_clicked" />
<Button
android:id="@+id/button4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/bttn_aux4"
android:onClick="do_clicked" />
<Button
android:id="@+id/button5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/bttn_aux5"
android:onClick="will_clicked" />
<Button
android:id="@+id/button6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/bttn_aux6"
android:onClick="has_clicked" />
</LinearLayout>
修改强> 删除它。您只使用此textView设置整个视图。您已经设定了自己的观点。
setContentView(textView);
您已使用以下行设置布局。你不应该再次覆盖它。
setContentView(R.layout.activity_auxilary);
当您使用布局文件setContentView时,您已经拥有了textview。您可以使用以下行访问它。
TextView textView = (TextView) v.findViewById(R.id.textView1); // id of textview from layoutfile
就是这样,不要覆盖视图。
答案 1 :(得分:0)
您对先前声明的ID的引用不正确。
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1" <---no plus sign; "@id/textView1"
android:layout_marginLeft="74dp"
android:layout_marginTop="64dp"
android:layout_toRightOf="@+id/textView1" <---no plus sign;
android:text="@string/bttn_aux1"
android:onClick="is_clicked" />
以下字段存在同样的问题。
仅在首次分配ID时使用加号,以便声明该ID。当id已经被声明时,无需使用加号。