我是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。)
感谢您的帮助(:
答案 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));
}
}
这将使您可以灵活地使布局中不仅包含列表视图