将listview显示在dialog当中
一.新建一个工程
其activity_main.xml文件如下
<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:orientation="vertical"tools:context="com.webjet.listviewondialog.MainActivity"><TextViewandroid:id="@+id/tv_name"android:layout_width="match_parent"android:layout_height="50dp"android:text=""android:gravity="center"/><Buttonandroid:layout_width="match_parent"android:layout_height="50dp"android:layout_marginTop="30dp"android:background="#00ff00"android:text="点击显示对话框"android:onClick="go"/></LinearLayout>
二.定义一个listview的xml文件
这里定义为listview.xml具体代码如下
<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/ll"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingLeft="20dp"android:paddingRight="20dp"android:orientation="vertical"><ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="match_parent"></ListView></LinearLayout>
三.定义listview的item的xml文件
这里定义为list_item.xml具体代码如下:
<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""android:textSize="20dp"/></LinearLayout>
四.编写MainActivity
具体代码如下:
importandroid.app.AlertDialog;importandroid.content.Context;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.AdapterView;importandroid.widget.ArrayAdapter;importandroid.widget.ListView;importandroid.widget.TextView;publicclassMainActivityextendsAppCompatActivity{ArrayAdapteradapter;AlertDialog.Builderbuilder;AlertDialogalertDialog;TextViewtv_name;//main中的tv用来接受所选择的的值TextViewtv;//listview中的tvString[]data=newString[20];//数据源@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化for(inti=0;i<20;i++){data[i]="小猪"+i;}tv=(TextView)findViewById(R.id.tv);tv_name=(TextView)findViewById(R.id.tv_name);}publicvoidgo(Viewv){builder=newAlertDialog.Builder(this);LayoutInflaterinflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);ViewviewRelatedType=inflater.inflate(R.layout.listview,(ViewGroup)findViewById(R.id.ll));ListViewlistView=(ListView)viewRelatedType.findViewById(R.id.lv);listView.setAdapter(newArrayAdapter<String>(this,R.layout.list_item,R.id.tv,data));builder.setView(viewRelatedType);alertDialog=builder.show();listView.setOnItemClickListener(newAdapterView.OnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>adapterView,Viewview,inti,longl){tv_name.setText(data[i]);alertDialog.dismiss();}});}}
五.效果图:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。