如何在其他UI元素旁边包含列表? (机器人)

时间:2011-08-02 18:26:59

标签: java android xml android-layout listactivity

我是Android开发的新手,所以如果这是一个简单的/ noob-ish问题,并且对于任何不正确的术语,我道歉。

但我需要知道的是如何在其他UI元素旁边包含一个列表(例如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()”的功能,这似乎只是切换到该活动,而不是“包含”到当前,其中of-corse意味着“R.layout.main”中的任何元素(上面定义的调用“startActivity()”没有显示。

有没有在我的主要活动中包含此活动? 或者有更好的制作清单的方法吗?

(我的目标最终是使列表数组动态化,只是在遇到影响任何建议的解决方案的情况下认为id。)

感谢您的帮助(:

2 个答案:

答案 0 :(得分:1)

使用startActivity启动ListViewExample会启动一个全新的活动(使用全新视图)并将其置于堆栈顶部。单击后退按钮时,将显示主活动。请参阅this链接,详细了解活动生命周期。

听起来你想做的是在listview旁边定义一些其他的UI元素。我不知道你是否可以在SIDE上执行此操作,但我知道您可以在列表视图的顶部或底部包含按钮/文本视图。请参阅this帖子,了解如何将按钮放在列表视图下方。

编辑:作为一个例子(取自第二个链接),你会做这样的事情:

<?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>

现在你可以根据需要将该按钮放在底部,或者在顶部包含一个文本框,在底部包含一个按钮。

是的,因为Espiandev说,你希望你的主要活动扩展活动。然后在您的XML中,您将拥有上述内容。你将listview绑定到的方式是

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

然后你可以绑定它:

lv.setAdapter(...)

答案 1 :(得分:0)

另一个可能更具可扩展性的答案的替代方法是简单地ListViewExample扩展基本Activity。然后,在onCreate()方法中,使用findViewById()检索ListView,然后对此使用setAdapter()。例如,如果您的ListView被赋予了id 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));
    }
}

这将使您可以灵活地使布局中不仅包含列表视图