Android layout Android GridView为空
我希望有一点'比幸运,并找到一个人谁可以帮助我 让我解释一下我的想法,我在屏幕的左侧和右侧都有一个字符串列表一个图标列表,允许您对左侧的字符串执行各种操作 这是关于我需要的想法。 我想到了各种解决方案,我认为这是一个更接近我所做的网格,所有这些都是一个问题。。。优化字符串列表,调用GridView。。。我没有在屏幕上打印任何东西,但屏幕仍然是空的Android layout Android GridView为空,android-layout,android-widget,Android Layout,Android Widget,我希望有一点'比幸运,并找到一个人谁可以帮助我 让我解释一下我的想法,我在屏幕的左侧和右侧都有一个字符串列表一个图标列表,允许您对左侧的字符串执行各种操作 这是关于我需要的想法。 我想到了各种解决方案,我认为这是一个更接近我所做的网格,所有这些都是一个问题。。。优化字符串列表,调用GridView。。。我没有在屏幕上打印任何东西,但屏幕仍然是空的 enter code public class TabelleActivity extends Activity { /** Called when
enter code public class TabelleActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testo);
GridView tabella = new GridView (this);
tabella.setNumColumns(2);
String[] cols = getResources().getStringArray(R.array.countries_array);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.main, cols);
tabella.setAdapter(adapter);
}
输入代码公共类选项卡活动扩展活动{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.testo);
GridView选项卡=新的GridView(本);
塔贝拉.setNumColumns(2);
String[]cols=getResources().getStringArray(R.array.countries\u数组);
ArrayAdapter=新的ArrayAdapter(this,R.layout.main,cols);
tabella.setAdapter(适配器);
}
感谢您的耐心首先,您从未将GridView添加到屏幕上显示的视图中。为此,您必须调用方法。 例如,您可以为基础布局提供一个ID,并执行以下操作:
// get the base Layout
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.main_layout);
// add the GridView to it
mainLayout.addView(tabella);
然而,在测试之后,我发现了一个非法的例外情况,例如:
02-22 09:15:13.140: E/AndroidRuntime(1634): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
解释如下:
由任意对象数组支持的具体BaseAdapter。默认情况下,此类要求提供的资源id引用单个TextView。如果要使用更复杂的布局,请使用也具有字段id的构造函数。该字段id应引用较大布局资源中的TextView
因此,我需要一个新的资源文件来定义项(item.xml)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp" >
<TextView
android:id="@+id/item_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
最后,我只需要在GridView的ArrayAdapter中使用它:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.main_layout);
GridView tabella = new GridView(this);
tabella.setNumColumns(2);
String cols[] = getResources().getStringArray(R.array.countries_array);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.item, R.id.item_title, cols);
tabella.setAdapter(adapter);
mainLayout.addView(tabella);
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout main布局=(LinearLayout)findViewById(R.id.main\U布局);
GridView选项卡=新的GridView(本);
塔贝拉.setNumColumns(2);
字符串cols[]=getResources().getStringArray(R.array.countries_数组);
ArrayAdapter=新的ArrayAdapter(this,R.layout.item,R.id.item_title,cols);
tabella.setAdapter(适配器);
mainLayout.addView(tabella);
}
我得到了预期的行为,显示了GridView。需要一些调整以满足您的需要