Android中的网格布局
我刚刚创建了一个新的android应用程序,所以我只有MainActivity.java文件及其相应的xml布局文件(activity_main.xml)。activity_main.xml文件的内容为: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"
<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>