我的ListView在android emulator中不可见,我使用了线性布局

我的ListView在android emulator中不可见,我使用了线性布局,android,android-layout,listview,Android,Android Layout,Listview,我的问题是列表视图在我的android模拟器上不可见 下面是我的xml文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com

我的问题是列表视图在我的android模拟器上不可见 下面是我的xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".MyListview">


<ListView
    android:id="@+id/listview"
    android:layout_width="368dp"
    android:layout_height="495dp"
    tools:layout_editor_absoluteX="8dp"
    tools:layout_editor_absoluteY="8dp"
    tools:ignore="MissingConstraints" />
</LinearLayout>

下面是我的string.xml文件

<resources>
<string name="app_name">MyListView</string>
<string-array name="myarray">
    <item value="Abc"></item>
    <item value="Def"></item>
    <item value="ghi"></item>
    <item value="jkl"></item>

</string-array>

MyListView

下面是my.java文件:

package com.example.mypc.mylistview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import  android.widget.*;

public class MyListview extends AppCompatActivity {
ListView lv;
ArrayAdapter ad;
String []arr={"abc","def","ghi","jkl"};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my_listview);

    lv=(ListView) findViewById(R.id.listview);

       ad=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,arr);

    lv.setAdapter(ad);
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
          String []arr=getResources().getStringArray(R.array.myarray);
            String value=arr[position];
            Toast.makeText(getApplicationContext(),value,Toast.LENGTH_LONG).show();

        }
    });

}
}
package com.example.mypc.mylistview;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.*;
公共类MyListview扩展了AppCompatActivity{
ListView lv;
ArrayAdapter广告;
字符串[]arr={“abc”、“def”、“ghi”、“jkl”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u my\u listview);
lv=(ListView)findViewById(R.id.ListView);
ad=新的ArrayAdapter(getApplicationContext(),android.R.layout.simple\u list\u item\u 1,arr);
低压设置适配器(ad);
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串[]arr=getResources().getStringArray(R.array.myarray);
字符串值=arr[位置];
Toast.makeText(getApplicationContext(),value,Toast.LENGTH_LONG.show();
}
});
}
}
以下是我的输出:

这是在数组适配器中传递数组后的输出

我的java文件中是否有任何错误,或者我采用了错误的布局?
提前感谢

正如您在截图中看到的,一切都很好。列表视图在那里,但是android.R.layout.simple\u List\u item\u 1的颜色是白色的,这就是它不显示的原因。你可以试试

e、 g.mytextview.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tv"
    android:textColor="@color/font_content"
    android:padding="5sp"
    android:layout_width="fill_parent"
    android:background="@drawable/rectgrad"
    android:singleLine="true"
    android:gravity="center"
    android:layout_height="fill_parent"/>

您的java文件现在是:

package com.example.mypc.mylistview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import  android.widget.*;

public class MyListview extends AppCompatActivity {
ListView lv;
ArrayAdapter ad;
String []arr={"abc","def","ghi","jkl"};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my_listview);

    lv=(ListView) findViewById(R.id.listview);

       ad=new ArrayAdapter<String>(getApplicationContext(),R.layout.mytextview,arr);

    lv.setAdapter(ad);
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
          String []arr=getResources().getStringArray(R.array.myarray);
            String value=arr[position];
            Toast.makeText(getApplicationContext(),value,Toast.LENGTH_LONG).show();

        }
    });

}
}
package com.example.mypc.mylistview;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.*;
公共类MyListview扩展了AppCompatActivity{
ListView lv;
ArrayAdapter广告;
字符串[]arr={“abc”、“def”、“ghi”、“jkl”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u my\u listview);
lv=(ListView)findViewById(R.id.ListView);
ad=新的ArrayAdapter(getApplicationContext(),R.layout.mytextview,arr);
低压设置适配器(ad);
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串[]arr=getResources().getStringArray(R.array.myarray);
字符串值=arr[位置];
Toast.makeText(getApplicationContext(),value,Toast.LENGTH_LONG.show();
}
});
}
}
而且它确实有效。

在MainActivity.java中简单地使用它
Simple use this in MainActivity.java


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView  listView=findViewById(R.id.listviewa);

        String [] value=getResources().getStringArray(R.array.radio_buttons);
         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, value);
        listView.setAdapter(adapter);


    }

//---------------------String.xml-

<resources>
    <string name="app_name">YourAppName</string>


    <string-array name="radio_buttons">
        <item>ABC</item>
        <item>DEF</item>
        <item>GHX</item>
        <item>IJK</item>
    </string-array>
</resources>
@凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView ListView=findViewById(R.id.listviewa); String[]value=getResources().getStringArray(R.array.radio_按钮); ArrayAdapter=新的ArrayAdapter(此, android.R.layout.simple_list_item_1,android.R.id.text1,value); setAdapter(适配器); } //---------------------String.xml- 你的应用程序名 基础知识 DEF GHX IJK
如果在这方面遇到任何问题,请告诉我。谢谢@Vishal sharma,我在arrayAdapter中传递了android.R.id.text1,现在我的列表是可见的,但toast msg没有显示,它只显示空的黑框而不是toast msg,顺便说一句,thanksit说“不幸的是,应用程序已停止”,非常感谢您的建议,这个广告=新的ArrayAdapter(getApplicationContext(),R.layout.mytextview,R.id.tv,arr);