как включить список наряду с другими элементами пользовательского интерфейса? (Android) - PullRequest
1 голос
/ 02 августа 2011

Я новичок в разработке Android, поэтому я прошу прощения, если это простой вопрос / noob-ish, и за любую неправильную терминологию.

но мне нужно знать, как я могу включить списокнаряду с другими элементами пользовательского интерфейса (такими как TextView, элементы ImageView и т. д.)

до настоящего времени все, что мне удалось достичь, - это самостоятельно выполнять действия со списком, для чего я использовал класс ListActivity.Тип.

Мой список действий:

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class ListViewExample extends ListActivity 
{
    String[] exampleList = {
            "Item 1",
            "Item 2",
            "Item 3"
            //etc etc
    };

    @Override  
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.listview);

        setListAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, exampleList));
    }
}

, который запускается в моем основном классе / деятельности:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

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

        startActivity(new Intent( this, ListViewExample.class));
    }
}

, но с функцией "startActivity ()"кажется, это просто переключается на эту деятельность, а не «включает» ее в текущую, что означает, что любые элементы в «R.layout.main» (определенные выше, при вызове «startActivity ()) не отображаются.

Есть ли способ включить это действие в мою основную деятельность? Или есть лучший способ составить список?

(моей целью в конечном итоге будет сделать массив списков динамическим, простодумал я скажу в счто влияет на любое предлагаемое решение).

спасибо за любую помощь (:

Ответы [ 2 ]

1 голос
/ 02 августа 2011

Использование startActivity для запуска вашего ListViewExample запускает совершенно новое действие (с совершенно новым представлением) и помещает его поверх стека.Когда вы нажмете кнопку «Назад», будет отображаться ваша основная деятельность.Пожалуйста, смотрите эту ссылку, чтобы узнать больше о жизненном цикле деятельности.

Звучит так, как будто вы хотите определить другие элементы пользовательского интерфейса рядом с вашим списком.Я не знаю, можете ли вы сделать это на СТОРОНЕ, но я знаю, что вы можете включить кнопки / текстовые представления сверху или снизу списка.См. эту публикацию как хороший пример того, как поместить кнопку под списком.

РЕДАКТИРОВАТЬ: В качестве примера (взято из второй ссылки), вы бы сделали что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">

    <Button android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:id="@+id/testbutton"
        android:text="@string/hello" android:layout_alignParentBottom="true" />

    <ListView android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:id="@+id/list"
        android:layout_alignParentTop="true" android:layout_above="@id/testbutton" />

</RelativeLayout>

Теперь вы также можете поместить эту кнопку внизу, если хотите, или включить текстовое поле сверху и кнопку снизу.

Да, как сказал Эспиандев, вы бы хотели, чтобы ваш основнойактивность для расширения деятельности.Тогда в вашем XML у вас будет выше.Вы можете привязать свой список к списку следующим образом:

ListView lv = (ListView) findViewById (R.id.list);

Тогда вы можете привязать к нему:

lv.setAdapter (...)

0 голосов
/ 02 августа 2011

Альтернативой другому ответу, который, вероятно, является более масштабируемым, является простое ListViewExample расширение базового Activity.Затем в методе onCreate() извлеките ListView с помощью findViewById () , а затем используйте setAdapter() для этого.Например, если вашему ListView был присвоен идентификатор listview1:

public class ListViewExample extends Activity {
    String[] exampleList = {
            "Item 1",
            "Item 2",
            "Item 3"
            //etc etc
    };

    @Override  
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.listview);

        // Get an instance of your listview in code
        ListView listview = (ListView) findViewById(R.id.listview1);

        // Set the listview's adapter
        listview.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, exampleList));
    }
}

Это даст вам гибкость, чтобы иметь макет с более чем просто списком в нем

...