我有以下代码如下。我试图运行一个简单的列表视图,所有没有错误,输出是空白屏幕。
MainActivity.java
public class MainActivity extends ActionBarActivity {
String[] stateArray = {"jh","kd"};
private ListView stateListView;
private ArrayAdapter<string> arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
stateListView = (ListView) findViewById(R.id.state_list);
arrayAdapter = new ArrayAdapter<string>(this,android.R.layout.simple_list_item_1);
stateListView.setAdapter(arrayAdapter);
}
}
activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.lab4_1.MainActivity" >
<ListView
android:id="@+id/state_list"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</RelativeLayout>
Al工作正常没有错误,模拟器只显示空哪个屏幕内没有任何内容。可能会遗漏什么?
答案 0 :(得分:1)
试试这种方式
arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,stateArray);
将Array
作为ArrayAdapter
有关更多信息,请转到AndroidListView/Vogella
答案 1 :(得分:0)
它是空的,因为您没有将数据集提交到适配器
arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
在
中更改它 arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, stateArray);
Here您可以找到文档
答案 2 :(得分:0)
您尚未在适配器中传递实际数据,这就是显示listview为空的原因。简单地将stateArray
作为适配器的最后一个参数传递,如下所示:
更改您的适配器行,如下所示:
String[] stateArray = {"jh","kd"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, stateArray);
将<string>
<String>
设为<String>
您需要制作&#39; S&#39;资本。
注意:它的String[]
部分意味着ArrayAdapter将使用String
数据(paths参数)。换句话说,数组中的每个元素都是{{1}}。
答案 3 :(得分:0)
更改
arrayAdapter = new ArrayAdapter<string>(this,android.R.layout.simple_list_item_1);
到
arrayAdapter = new ArrayAdapter<string>(this,android.R.layout.simple_list_item_1,stateArray );
答案 4 :(得分:0)
首先,您在ArrayList上定义泛型是错误的。需要说ArrayList<String>
。注意大写S.
您需要将项目添加到列表中。 UI Designer会自动添加样本项,这可能让您误以为已经存在项目。
尝试在onCreate()的末尾添加arrayAdapter.add("Test");
之类的内容。
如果可行,您可以使用以下命令添加stateArray:
arrayAdapter.addAll(stateArray)
完整的MainActivity.java:
package com.example.test;
import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
String[] stateArray = {"jh","kd"};
private ListView stateListView;
private ArrayAdapter<String> arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
stateListView = (ListView) findViewById(R.id.state_list);
arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
stateListView.setAdapter(arrayAdapter);
arrayAdapter.add("Test");
arrayAdapter.addAll(stateArray);
}
}
答案 5 :(得分:0)
试试这个
arrayAdapter = new ArrayAdapter<string>(this,android.R.layout.simple_list_item_1,stateArray);
答案 6 :(得分:0)
像这样使用
adapter.setAdapter(new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,stringarray));
答案 7 :(得分:0)