我的ListView在android emulator中不可见,我使用了线性布局
我的问题是列表视图在我的android模拟器上不可见 下面是我的xml文件我的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
<?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);