My List View não é visível corretamente no android

votos
0

Meu problema é que o meu listview apenas exibe caixas retângulo sem opções visíveis, mas quando eu clique em qualquer item que exibe o texto da lista abaixo é meu arquivo 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>

abaixo está o meu arquivo 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);
}
}

digite

Publicado 02/09/2018 em 05:37
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

Altere a linha: -

adapter=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_2
         ,android.R.id.text1,arr);

para

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

Diferenca é que simple_list_item_1tem um único textview enquanto a simple_list_item_2tem dois TextViews dentro de uma subclasse de RelativeLayout.

Também a arrayadapternão preencher várias instâncias TextView. Você precisará substituir getView()por isso.

Esta resposta vai torná-lo mais claro

Nota: - Desde o listViewjá é match_parenta largura e altura, não deve haver necessidade de alinhar com o fundo ou o fim ou para a direita.

Experimente sem especificar o ID de recurso textview como: -

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

Pois sem ela, ele usa o textview padrão para a exibição de cada item. Mas se você quiser você possui textview, criar um layout com textview como a exibição de raiz e colocou-id como acima e apresentá-lo no construtor com o resouceId textview.

Mas no seu caso, você não precisa dele, então tente usar sem ele.

Espero que isto ajude.

Respondeu 02/09/2018 em 07:04
fonte usuário

votos
0

Em sua imagem, textos são muito pálida. Quando você clica em um deles, o fundo do item torna-se escuro e o texto em branco aparece. Por outro lado, se você quiser itens com um textview, você deve usar ArrayAdapter, caso contrário, você deve estender ArrayAdapterclasse. Aqui está um exemplo:

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

Respondeu 02/09/2018 em 07:18
fonte usuário

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