Android Studio - ListView się nie wyświetla.

0

Witam, mam problem z elementem ListView w AndroidStudio. Polega ona na tym że po prostu do momentu gdzie szło gładko(button,toast,edittext), tutaj jest problem już na początku z wyświetlaniem tego elementu w emulatorze. Po prostu on nie wyskakuje, pojawia się czysty biały ekran.

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</RelativeLayout>
package com.example.damian.zakupy;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends AppCompatActivity {

    public class List extends Activity {

        ListView list ;
        String[] dni={"Poniedzialek","Wtorek","Sroda","Czwartek", "Piatek","Sobota","Niedziela"};
        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

            list= (ListView) findViewById(R.id.listView);
            ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_2,dni);
            list.setAdapter(adapter);
        }
}}
 
0

Ktoś coś ? :c

0

Klasa w klasie jeszcze ok, ale nie wywołujesz activity. Sprawdź jeszcze co masz w Manifeście żebyś za chwilę nie przyleciał że znów nie działa

public class MainActivity extends AppCompatActivity {
 
        ListView list ;
        String[] dni={"Poniedzialek","Wtorek","Sroda","Czwartek", "Piatek","Sobota","Niedziela"};
        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
            list= (ListView) findViewById(R.id.listView);
            ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_2,dni);
            list.setAdapter(adapter);
        }
}
0
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.damian.zakupy" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity android:name=".MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
    android:orientation="vertical">

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</RelativeLayout>
package com.example.damian.zakupy;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends AppCompatActivity {

    public class List extends Activity {

       ListView list ;
       String[] dni={"Poniedzialek","Wtorek","Sroda","Czwartek", "Piatek","Sobota","Niedziela"};
        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

           kalendarz();
        }

        public void kalendarz()
        {
            list= (ListView) findViewById(R.id.listView);
            ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,dni);
            list.setAdapter(adapter);
        }
}}

Pomimo pomocy kolegi wyżej nic się nie zmieniło :\

0

Wiesz co też miałem kiedyś taki problem z ArrayAdapterem, że nie wyświetlał mi nic, ja to rozwiązałem tak, że napisałem swoją własną klasę adaptera rozszerzająca BaseAdapter i to pomogło, ale do tej pory nie wiem czemu z tym ArrayAdapterem się czasem cyrki dzieją

0
Nespire napisał(a):
package com.example.damian.zakupy;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends AppCompatActivity {

    public class List extends Activity {

       ListView list ;
       String[] dni={"Poniedzialek","Wtorek","Sroda","Czwartek", "Piatek","Sobota","Niedziela"};
        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

           kalendarz();
        }

        public void kalendarz()
        {
            list= (ListView) findViewById(R.id.listView);
            ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,dni);
            list.setAdapter(adapter);
        }
}}

Pomimo pomocy kolegi wyżej nic się nie zmieniło :\

Przecież to jest kompletnie bez sensu. Po co Ci ta klasa List?

0

A rzeczywiście nawet tego nie zauważyłem, że kolega napisał klasę wewnętrzną z activity i to pomimo, że Panryz dał mu przykład na górze :)

0

Nie oceniajcie książki po okładce oraz nie zrarzajcie początkujących :) nie zrozumiałem za bardzo co kolega panryz chciał mi przekazać lecz to tylko moja nie uwaga :P po to jednak jest dział newbie :)

Nie mniej jednak dziękuję za pomoc, już działa wszystko :)

Dla zainteresowanych w przyszłości, mimo sugerowania się mnóstwem przykładów z google, rozwiązaniem okazało się inicjacja zmiennej __ ArrayAdapter<String> adapter ;__ przed klasą onCreate a nie od razu przy przypisywaniu Stringa do adaptera.

1 użytkowników online, w tym zalogowanych: 0, gości: 1