我的问题是我的列表视图只显示矩形框,没有可见的选项,但是当我单击任何项目时,它会显示列表的文本 以下是我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true" />
</RelativeLayout>
以下是我的Java文件:
package com.example.mypc.contextmenuapp;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.*;
public class MainActivity extends AppCompatActivity {
ListView lv;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView) findViewById(R.id.lv);
String []arr=getResources().getStringArray(R.array.myarray);
adapter=new ArrayAdapter<String>
(getApplicationContext(),android.R.layout.simple_list_item_2
,android.R.id.text1,arr);
lv.setAdapter(adapter);
}
}
答案 0 :(得分:1)
更改行:-
adapter=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_2
,android.R.id.text1,arr);
到
adapter=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1
,android.R.id.text1,arr);
区别在于simple_list_item_1
具有单个textview,而simple_list_item_2
在RelativeLayout
的子类中具有两个textview。
arrayadapter
也不填充多个textview实例。为此,您需要覆盖getView()
。
This answer will make it more clear
注意:-由于listView
的宽度和高度都已经match_parent
,因此无需与底部,末端或右侧对齐。
尝试不指定textview资源ID,例如:-
adapter=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1
,arr)
由于没有它,它使用默认的textview显示每个项目。但是,如果您想拥有textview,请创建一个以textview作为根视图的布局,并按上述设置其id,然后在带有textview resouceId的构造函数中引用它。
但是在您不需要的情况下,请尝试在没有它的情况下使用。
希望这会有所帮助。
答案 1 :(得分:0)
图像中的文字非常苍白。当您单击其中之一时,项目的背景将变暗,并出现白色文本。
另一方面,如果要使项目具有一个textview,则应使用ArrayAdapter
,否则必须扩展ArrayAdapter
类。这是一个示例:
https://github.com/codepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView