Listview в макете Android - PullRequest
       20

Listview в макете Android

1 голос
/ 05 декабря 2011

У меня есть строковый массив, который мне нужно отобразить в макете. Код в настоящее время показывает список, но список не находится в макете, он создает новый «экран», где единственное, что вы можете увидеть, это список.

Вот код, который я просто не могу отобразить в списке макетов.

import android.app.ListActivity;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class idchart extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.idchart);

    Resources res = getResources();

 // To get the string array associated with particular resource ID.
 String[] ids = res.getStringArray(R.array.idchart_array);
 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.test_list_item,ids);
 setListAdapter(adapter);
 }

}

расположение:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg_main"
android:orientation="vertical" >


<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:src="@drawable/logo" />


<Button
    android:id="@+id/btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />

<RelativeLayout
    android:id="@+id/relative"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <ListView
        android:id="@+id/lv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>
</RelativeLayout>

</LinearLayout>

Мне не удалось найти ничего, что помогло бы :( поэтому я надеюсь, что вы сможете.

Ответы [ 3 ]

1 голос
/ 05 декабря 2011
ListView listView=(ListView)findViewById(R.id.lv);
//rest of code
listView.setAdapter(adapter);

И вы можете избежать расширения ListActivity.

Если вы используете ListActivity, тогда

ListView listView=getListView();
0 голосов
/ 05 декабря 2011

Если вы расширяете ListActivity, ваш ListView должен иметь конкретный идентификатор:

android:id="@id/android:list"

Из документа:

ListActivity has a default layout that consists of a single, full-screen list in the 
center of the screen. However, if you desire, you can customize the screen layout by
setting your own view layout with setContentView() in onCreate(). To do this, your own
view MUST contain a ListView object with the id "@android:id/list"
0 голосов
/ 05 декабря 2011

Ваш класс idchart должен быть подклассом обычного Activity вместо ListActivity, предназначенного только для отображения списков.

Обновление

Заменить

public class idchart extends ListActivity 

с

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