Мой ListView не виден в эмуляторе Android, я использовал линейный макет - PullRequest
0 голосов
/ 01 сентября 2018

Моя проблема в том, что представление списка не отображается на моем эмуляторе 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>

Ниже файл 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();

        }
    });

}
}

Ниже мой вывод:

Вот вывод после передачи массива внутри адаптера массива

Here is the output after passing array inside array adapter

Что-то не так в моем Java-файле или я выбрал неправильный макет? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018
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>
0 голосов
/ 01 сентября 2018

Как вы можете видеть на скриншоте, все в порядке. Представление списка есть, но цвет android.R.layout.simple_list_item_1 белый, поэтому он не отображается. Вы можете попробовать

например. 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();

        }
    });

}
}

И это определенно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...