-1

アクティビティのリストビューをクリックしたときにアラート ダイアログを表示したいのですが、アラート ダイアログを表示するコードはありますが、コードに何か問題があることがわかっており、それを修正する方法がわかりません。アラートはどのように表示されませんでした私は欲しいのですが、DDMSでは私が望む結果を得ることができます。ここに私のコードがあります:

@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();

}

ありがとう。

それは私の丸太の猫です:

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): シャットダウンVM 09-18 11:52:09.669: W/dalvikvm(25866): threadid=1: キャッチされない例外で終了するスレッド (group=0x40018578) 09-18 11:52:09.679: E/AndroidRuntime(25866): FATAL EXCEPTION : メイン 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): com.wilis.hellotabwidget.Tab_Brand_ListView_Activity.onListItemClick(Tab_Brand_ListView_Activity.java:158) 09-18 11:52:09.679: E/Android6Runtime(25866) ): android.app.ListActivity$2.onItemClick(ListActivity.java:319) 09-18 11:52:09.679: E/AndroidRuntime(25866): android.widget.AdapterView.performItemClick(AdapterView.java:284) 09 -18 11:52:09.679: E/AndroidRuntime(25866): android.widget.ListView.performItemClick(ListView.java:3755) 09-18 11:52:09.679: E/AndroidRuntime(25866): android.widget で.AbsListView$PerformClick.run(AbsListView.java:1964) 09-18 11:52:09.679: E/AndroidRuntime(25866): android.os.Handler.handleCallback(Handler.java:587) 09-18 11:52 :09.679: E/AndroidRuntime(25866): android.os.Handler で。dispatchMessage(Handler.java:92) 09-18 11:52:09.679: E/AndroidRuntime(25866): android.os.Looper.loop(Looper.java:130) 09-18 11:52:09.679: E/ AndroidRuntime(25866): android.app.ActivityThread.main(ActivityThread.java:3687) 09-18 11:52:09.679: E/AndroidRuntime(25866): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) で09-18 11:52:09.679: E/AndroidRuntime(25866): 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): com.android.internal.os.ZygoteInit.main(ZygoteInit) で.java:625) 09-18 11:52:09.679: E/AndroidRuntime(25866): dalvik.system.NativeStart.main(ネイティブ メソッド) 09-18 11:52:09.809: E/HttpResponse(25866): { "結果":1,"data":[{"0":"1","id_type":"1","1":"クロスカントリー (XC)","type_name":"クロスカントリー (XC)"},{"0 ":"2","id_type":"2","1":"BMX","type_name":"BMX"},{"0":"3","id_type":"3","1 ":"フリーライド (FR)","type_name":"フリーライド (FR)"},{"0":"4","id_type":"4","1":"ダウンヒル (DH)" ,"type_name":"DownHill (DH)"},{"0":"5","id_type":"5","1":"ダートジャンプ (DJ)","type_name":"ダートジャンプ (DJ) "},{"0":"6","id_type":"6","1":"ロードバイク","type_name":"ロードバイク"}]}

4

2 に答える 2

9

これはあなたを助けるかもしれません

    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();    

        }

    });

ここで MainActivity.this をクラス名に変更します

于 2012-09-18T05:16:56.870 に答える
-1

これはAndroid 開発者からのものです:
まず、このクラスを作成します。

@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();
    }

}

次に、これを必要な場所に置き、ダイアログを呼び出します

ChangeLanguageDialog dialog = new ChangeLanguageDialog();
FragmentManager fm = getFragmentManager();
dialog.show(fm, "language");
于 2013-05-21T04:04:53.580 に答える