UMA*_*MAR 32 android listview dialog
我已经创建了一个自定义对话框类
public class NewPost extends Dialog
{
// functionality
}
Run Code Online (Sandbox Code Playgroud)
现在我的要求是在里面创建listview.我知道我们可以在其中创建文本框,按钮,下拉列表.
但是为了创建列表视图,我们应该从listActivity类继承我们的类
您建议的是否可能,如果是,那么如何使用任何界面实现这一点或什么?
moo*_*ese 64
此实现不需要您进行任何xml布局.它是作为"onCreateDialog"覆盖中的case语句编写的,但是你可以很容易地适应你的目的:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Color Mode");
ListView modeList = new ListView(this);
String[] stringArray = new String[] { "Bright Mode", "Normal Mode" };
ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, stringArray);
modeList.setAdapter(modeAdapter);
builder.setView(modeList);
final Dialog dialog = builder.create();
dialog.show();
Run Code Online (Sandbox Code Playgroud)
因为您只使用ListView创建对话框,所以设置ListView的onItemClickListener,因为没有基本对话框类的onItemClickListener.
modeList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
switch(i) {
case 0:
//do something for first selection
break;
case 1:
//do something for second selection
break;
}
dialog.dismiss();
}
});
Run Code Online (Sandbox Code Playgroud)
Gau*_*ish 51
是.
您始终可以在Dialog中使用ListView.而且你肯定不一定需要ListActivity来创建ListView.
代码可能是这样的:
Dialog dlg = new Dialog(context);
LayoutInflater li = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = li.inflate(R.layout.my_layout, null, false);
dlg.setContentView(v);
dlg.show();
Run Code Online (Sandbox Code Playgroud)
my_layout.xml:
<ScrollView xmlns:android="blah"
android:id="xid"
android:layout_height="h"
android:layout_width="w">
<ListView blah blah blah attributes
/>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
Dav*_*und 11
你不是真的要延长listActivity,以便使用列表视图.
扩展listActivity将为您提供免费的一些功能,例如getListView()(如果我正确地记住方法名称),但也可以findViewById()像任何其他视图一样手动完成.
最简单的方法:
ListView listView = new ListView(this);
listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[] {"item 1", "item 2", "item 3"}));
Dialog dialog = new Dialog(this);
dialog.setContentView(listView);
dialog.show();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67105 次 |
| 最近记录: |