Android中的GridLayout

时间:2013-01-11 04:36:09

标签: android

我刚刚创建了一个新的Android应用程序,所以我只有MainActivity.java文件及其相应的xml布局文件(activity_main.xml)。 activity_main.xml文件的内容为:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="2"
android:orientation="vertical"
android:rowCount="2" >

<Button
    android:id="@+id/blueButton"
    android:background="#236B8E" />

<Button
    android:id="@+id/redButton"
    android:background="#FF0000" />

<Button
    android:id="@+id/yellowButton"
    android:background="#FFFF00" />

<Button
    android:id="@+id/greenButton"
    android:background="#00FF00" />

</GridLayout>

当我运行应用程序时,我看到的只是一个白色屏幕,顶部是“主要活动”栏。我的xml文件有什么问题吗?

5 个答案:

答案 0 :(得分:0)

 <Button android:id="@+id/btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Translate"
    android:background="#00FF00"
    />

将所有这些属性添加到按钮中。您就完成了。

答案 1 :(得分:0)

如果你想在gridview中有红色,蓝色,绿色和黄色按钮作为每个项目,那么你必须为它写一个单独的xml文件。在适配器中使用该xml文件,您可以将这些按钮填充为gridView中的每个项目。

有关如何执行此操作的详细信息已在here中得到很好的解释。

答案 2 :(得分:0)

首先从java文件中输入一些代码。 你有setContentview吗? 这个XML代码很好,它可以正常工作..

试试这个

XML:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView1"
android:numColumns="auto_fit"
android:gravity="center"
android:columnWidth="50dp"
android:stretchMode="columnWidth"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

</GridView>

JAVA CODE:

import android.app.Activity;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
import android.view.View;
import android.widget.AdapterView.OnItemClickListener;

public class GridViewActivity extends Activity {

GridView gridView;

static final String[] numbers = new String[] { 
        "A", "B", "C", "D", "E",
        "F", "G", "H", "I", "J",
        "K", "L", "M", "N", "O",
        "P", "Q", "R", "S", "T",
        "U", "V", "W", "X", "Y", "Z"};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    gridView = (GridView) findViewById(R.id.gridView1);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, numbers);

    gridView.setAdapter(adapter);

    gridView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {
           Toast.makeText(getApplicationContext(),
            ((TextView) v).getText(), Toast.LENGTH_SHORT).show();
        }
    });

}

}

答案 3 :(得分:0)

这里的代码没有问题,我尝试创建新的应用程序项目,它运行得很好。你正确设置API级别,最低API级别14设置为使用GridLayout。你有没有在你的java代码中为这个布局设置setContentView

答案 4 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridView1"
    android:numColumns="auto_fit"
    android:gravity="center"
    android:columnWidth="50dp"
    android:stretchMode="columnWidth"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

</GridView>