Java 如何包括列表和其他UI元素?(安卓)
我是android开发的新手,所以如果这是一个简单的问题,我为任何不正确的术语道歉 但我需要知道的是,如何在其他UI元素(如TextView、ImageView元素等)旁边包含一个列表 到目前为止,我所能实现的只是一个单独的列表活动,为此我一直使用ListActivity类类型 我的列表活动:Java 如何包括列表和其他UI元素?(安卓),java,android,xml,android-layout,listactivity,Java,Android,Xml,Android Layout,Listactivity,我是android开发的新手,所以如果这是一个简单的问题,我为任何不正确的术语道歉 但我需要知道的是,如何在其他UI元素(如TextView、ImageView元素等)旁边包含一个列表 到目前为止,我所能实现的只是一个单独的列表活动,为此我一直使用ListActivity类类型 我的列表活动: import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; public
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));
}
}
但是使用“startActivity()”函数,这似乎只是切换到该活动,而不是将其“包含”到当前活动,这意味着“R.layout.main”(在调用“startActivity()”之前定义)中的任何元素都不会显示
我的主要活动中是否包含此活动?
还是有更好的方法列出清单
(我的目标最终将是使列表数组动态化,正如我所说的那样,以防它影响到任何建议的解决方案)
感谢您的帮助(:使用startActivity启动ListView示例启动一个全新的活动(使用全新的视图)并将其放在堆栈顶部。单击“上一步”按钮时,将显示您的主要活动。请参阅链接以了解有关活动生命周期的更多信息 听起来你想做的是在listview旁边定义一些其他UI元素。我不知道你是否可以在侧面这样做,但我知道你可以在listview的顶部或底部包含按钮/文本视图。请参阅文章,这是如何在listview下方放置按钮的一个很好的示例 编辑:例如(取自第二个链接),您可以执行以下操作:
<?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(…)使用startActivity启动ListViewExample启动一个全新的活动(使用全新的视图)并将其放在堆栈顶部。单击“上一步”按钮时,将显示主要活动。有关活动生命周期的详细信息,请参阅链接 听起来你想做的是在listview旁边定义一些其他UI元素。我不知道你是否可以在侧面这样做,但我知道你可以在listview的顶部或底部包含按钮/文本视图。请参阅文章,这是如何在listview下方放置按钮的一个很好的示例 编辑:例如(取自第二个链接),您可以执行以下操作:
<?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(…)另一个答案可能更具可扩展性,它的替代方法是简单地使
ListViewExample
扩展一个基本的活动。然后,在onCreate()
方法中,使用setAdapter()检索ListView
。例如,如果您的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));
}
}
公共类ListViewExample扩展活动{
字符串[]示例列表={
“项目1”,
“项目2”,
“项目3”
//等等
};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
//在代码中获取listview的实例
ListView ListView=(ListView)findViewById(R.id.listview1);
//设置listview的适配器
setAdapter(新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,exampleList));
}
}
这将使您能够灵活地使用一个布局,而不仅仅是一个列表视图另一个答案可能更具可伸缩性,它的替代方法是简单地使列表视图示例
扩展一个基本的活动
方法,通过使用检索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));
}
}
公共类ListViewExample扩展活动{
字符串[]示例列表={
“项目1”,
“项目2”,
“项目3”
//等等
};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
//在代码中获取listview的实例
ListView ListView=(ListView)findViewById(R.id.listview1);
//设置listview的适配器
setAdapter(新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,exampleList));
}
}
这将使您可以灵活地使用一个布局,而不仅仅是一个listview我想您的意思是listview示例扩展活动而不是ListActivity这行是“listview listview=(listview)findViewById(R.id.listview1);”在R.layout.listview中引用列表的布局/样式吗?如果是,请在更改id后执行(listview1)为了匹配我正在使用的一个,我得到了一个强制关闭错误。你知道为什么吗?谢谢(:啊,它现在工作了,我直接复制了代码,它工作了,所以我一定在某个地方有一个小错误,再次感谢(:是的,R.id.listview1指的是listview本身的id,而不是布局。只需放置一个