How to show Alert Dialog when click on listview

好久不见. 提交于 2019-12-13 07:56:19

问题


I want to show alertdialog when I click on a listview on my activity, I have a code to show the alertdialog but I know something wrong with my code and I don't know how to fix it, the alert didn't show like what i want but in DDMS get the result what I want. here's my code :

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {

new bike_type_dao(responsetype).view_bike_type();

final Entity_Brand brand = adapterBrand.getItem(position);

LayoutInflater li = (LayoutInflater) this
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = li.inflate(R.layout.listview_activity, null, false);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(brand.getBrand_name());
builder.setView(view);

ListView listtype = (ListView) view.findViewById(R.id.list_sepeda);
listtype.setOnClickListener((OnClickListener) this);
listtype.setAdapter(new ArrayAdapter<Entity_Bike_Type>(this,
        android.R.layout.simple_list_item_1, arrayList));
listtype.setOnItemClickListener((OnItemClickListener) this);

builder.create().show();

}

Thanks.

thats my log cat:

09-18 11:52:07.819: E/HttpResponse(25866): {"result":1,"data":[{"0":"1","id_brand":"1","1":"Polygon","brand_name":"Polygon"},{"0":"2","id_brand":"2","1":"United Bike","brand_name":"United Bike"},{"0":"3","id_brand":"3","1":"WimCycle","brand_name":"WimCycle"}]} 09-18 11:52:09.669: D/AndroidRuntime(25866): Shutting down VM 09-18 11:52:09.669: W/dalvikvm(25866): threadid=1: thread exiting with uncaught exception (group=0x40018578) 09-18 11:52:09.679: E/AndroidRuntime(25866): FATAL EXCEPTION: main 09-18 11:52:09.679: E/AndroidRuntime(25866): java.lang.ClassCastException: com.wilis.hellotabwidget.Tab_Brand_ListView_Activity 09-18 11:52:09.679: E/AndroidRuntime(25866): at com.wilis.hellotabwidget.Tab_Brand_ListView_Activity.onListItemClick(Tab_Brand_ListView_Activity.java:158) 09-18 11:52:09.679: E/AndroidRuntime(25866): at android.app.ListActivity$2.onItemClick(ListActivity.java:319) 09-18 11:52:09.679: E/AndroidRuntime(25866): at android.widget.AdapterView.performItemClick(AdapterView.java:284) 09-18 11:52:09.679: E/AndroidRuntime(25866): at android.widget.ListView.performItemClick(ListView.java:3755) 09-18 11:52:09.679: E/AndroidRuntime(25866): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1964) 09-18 11:52:09.679: E/AndroidRuntime(25866): at android.os.Handler.handleCallback(Handler.java:587) 09-18 11:52:09.679: E/AndroidRuntime(25866): at android.os.Handler.dispatchMessage(Handler.java:92) 09-18 11:52:09.679: E/AndroidRuntime(25866): at android.os.Looper.loop(Looper.java:130) 09-18 11:52:09.679: E/AndroidRuntime(25866): at android.app.ActivityThread.main(ActivityThread.java:3687) 09-18 11:52:09.679: E/AndroidRuntime(25866): at java.lang.reflect.Method.invokeNative(Native Method) 09-18 11:52:09.679: E/AndroidRuntime(25866): at java.lang.reflect.Method.invoke(Method.java:507) 09-18 11:52:09.679: E/AndroidRuntime(25866): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 09-18 11:52:09.679: E/AndroidRuntime(25866): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 09-18 11:52:09.679: E/AndroidRuntime(25866): at dalvik.system.NativeStart.main(Native Method) 09-18 11:52:09.809: E/HttpResponse(25866): {"result":1,"data":[{"0":"1","id_type":"1","1":"Cross Country (XC)","type_name":"Cross Country (XC)"},{"0":"2","id_type":"2","1":"BMX","type_name":"BMX"},{"0":"3","id_type":"3","1":"Free Ride (FR)","type_name":"Free Ride (FR)"},{"0":"4","id_type":"4","1":"DownHill (DH)","type_name":"DownHill (DH)"},{"0":"5","id_type":"5","1":"DirtJump (DJ)","type_name":"DirtJump (DJ)"},{"0":"6","id_type":"6","1":"Road Bike","type_name":"Road Bike"}]}


回答1:


this may helps you

    listview.setOnItemClickListener(new OnItemClickListener(){

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long rowId) {


            AlertDialog.Builder adb = new AlertDialog.Builder(
                    MainActivity.this);
                    adb.setTitle("List");
                    adb.setMessage(" selected Item is="
                    +parent.getItemAtPosition(position));
                    adb.setPositiveButton("Ok", null);
                    adb.show();    

        }

    });

Here change MainActivity.this with your class name




回答2:


This is from Android Developers:
First i create this class,

@SuppressLint("NewApi") 
public class ChangeLanguageDialog extends DialogFragment{

    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setMessage(R.string.app_name)
               .setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                   }
               })
               .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                   }
               });
        return builder.create();
    }

}

Then put this where you want call the Dialog

ChangeLanguageDialog dialog = new ChangeLanguageDialog();
FragmentManager fm = getFragmentManager();
dialog.show(fm, "language");


来源:https://stackoverflow.com/questions/12470507/how-to-show-alert-dialog-when-click-on-listview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!