Мой список Просмотр не отображается должным образом в андроиде

голоса
0

Моя проблема заключается в том, что мой ListView просто отображает прямоугольник окна без опций видны, но когда я нажимаю любой элемент отображает текст Листа Ниже мой файл 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);
}
}

введите

Задан 02/09/2018 в 05:37
источник пользователем
На других языках...                            


2 ответов

голоса
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);

Differnce является то , что simple_list_item_1имеет один TextView в то время как simple_list_item_2два TextViews внутри подкласса RelativeLayout.

Кроме того , arrayadapterне заполняет несколько экземпляров TextView. Вы должны переопределить getView()для этого.

Этот ответ будет сделать его более ясным

Примечание: - Так как listViewэто уже match_parentкак ширина и высота, не должно быть никакой необходимости для выравнивания с нижней или в конце или вправо.

Попробуйте без указания идентификатора ресурса TextView, как: -

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

Так как без этого, он использует TextView по умолчанию для отображения каждого элемента. Но если вы хотите, у вас есть TextView, создать макет с TextView как вид корня и установить его идентификатор, как указано выше, и передать его в конструктор с TextView resouceId.

Но в вашем случае это не нужно, так попробуйте без него.

Надеюсь это поможет.

Ответил 02/09/2018 в 07:04
источник пользователем

голоса
0

В изображении, тексты очень бледные. При нажатии одной из них, фон элемента становится темным , и появляется белый текст. С другой стороны , если вы хотите детали с одной TextView, вы должны использовать ArrayAdapter, в противном случае вы должны расширить ArrayAdapterкласс. Вот пример:

https://github.com/codepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView

Ответил 02/09/2018 в 07:18
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more