您好我尝试在Android文档之后使用此代码创建一个简单的listActivity:
public class AddProductChoices extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_product_choices);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.addProductChoices));
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Toast.makeText(this, "Option Selected " + position, Toast.LENGTH_LONG);
}
}
R.layout.add_product_choices:
<LinearLayout 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:orientation="vertical"
tools:context="es.infofly.apps.gestcomprasnav.activities.AddProductChoices">
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="No data" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible"/>
</LinearLayout>
的strings.xml:
<resources>
<array name="addProductChoices">
<item>Opcion 1</item>
<item>Opcion 2</item>
<item>Opcion 3</item>
<item>Opcion 4</item>
</array>
</resources>
但我得到的只是一个白色的屏幕。 我尝试直接使用数组作为测试而不是获取字符串,xml具有相同的结果。 谁能告诉我我错过了什么?感谢
答案 0 :(得分:0)
问题是在manifest.xml中我将活动的主题称为对话框:
<activity
android:name=".activities.AddProductChoices"
android:label="@string/add_product_choices"
android:theme="@style/Base.Theme.AppCompat.Dialog" />
如果我尝试使用对话框主题显示白色屏幕,如果我使用通常的大小(主题,所有屏幕)顺利。所以我使用常规的AppCompatActivity并正常使用ListView:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_product_choices);
ListView choices = (ListView) findViewById(R.id.lv_choices);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.addProductChoices));
choices.setAdapter(adapter);
choices.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent resultChoice = new Intent();
resultChoice.putExtra("choice", position);
setResult(RESULT_OK, resultChoice);
finish();
}
});