Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中的网格布局_Android - Fatal编程技术网

Android中的网格布局

Android中的网格布局,android,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应用程序,所以我只有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文件有什么问题吗?


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

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

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


关于如何做到这一点的更多信息已在中很好地阐述。

首先从java文件中放入一些代码。 你有setContentview吗? 这段XML代码很好,工作正常

试试这个

XML:


JAVA代码:

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();
        }
    });

}

}
导入android.app.Activity;
导入android.os.Bundle;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.GridView;
导入android.widget.TextView;
导入android.widget.Toast;
导入android.view.view;
导入android.widget.AdapterView.OnItemClickListener;
公共类GridViewActivity扩展了活动{
GridView;
静态最终字符串[]编号=新字符串[]{
“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”};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gridView=(gridView)findViewById(R.id.gridView1);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,数字);
setAdapter(适配器);
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
Toast.makeText(getApplicationContext(),
((TextView)v.getText(),Toast.LENGTH_SHORT).show();
}
});
}
}

这里的代码没有问题,我尝试创建新的应用程序项目,效果很好。您是否正确设置了API级别,将最低API级别14设置为使用GridLayout。您是否在java代码中为此布局设置了setContentView
<?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>
<?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>