0

リストを表示しているスピナーがあります。リストビュー項目の選択時にリストビューを持つカスタムダイアログにそのリストを表示したいと思います。スピナー値は、リストビュー項目から選択された値になります。

これが私のスピナーです

<Spinner
    android:id="@+id/Tittle"
    android:layout_width="290dp"
    android:layout_marginLeft="5dp"
    android:layout_marginTop="5dp"
    android:visibility="gone"
    android:layout_height="wrap_content"/>

これは、スピナーで値を設定する方法です

public void setTittle() {
        String[] tittlearray = { "Mr.", "Mrs.", "Ms" };
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, tittlearray);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
        tittleSpinner.setAdapter(dataAdapter);
    }

これは私のリストビューです

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listview"
        android:layout_height="wrap_content"
        android:layout_width="match_parent">
    </ListView>


</RelativeLayout>

今、私はこのリストをカスタムダイアログに入れたいと思っています.これを手に入れるのを手伝ってください.

Gauravコードを使用した後に編集

Exception i am getting 
09-12 13:46:04.436: E/InputEventReceiver(7206): Exception dispatching input event.
09-12 13:46:04.437: E/MessageQueue-JNI(7206): Exception in MessageQueue callback: handleReceiveCallback
09-12 13:46:04.469: E/MessageQueue-JNI(7206): java.lang.NullPointerException
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at com.example.bookingpage.MainActivity$5.onTouch(MainActivity.java:215)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.View.dispatchTouchEvent(View.java:7138)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2238)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1935)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2244)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2244)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2244)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2244)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2244)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1938)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1392)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.app.Activity.dispatchTouchEvent(Activity.java:2408)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1886)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.View.dispatchPointerEvent(View.java:7323)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3520)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3454)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4543)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4522)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4618)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.os.MessageQueue.nativePollOnce(Native Method)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.os.MessageQueue.next(MessageQueue.java:125)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.os.Looper.loop(Looper.java:140)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at android.app.ActivityThread.main(ActivityThread.java:4987)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at java.lang.reflect.Method.invokeNative(Native Method)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at java.lang.reflect.Method.invoke(Method.java:511)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
09-12 13:46:04.469: E/MessageQueue-JNI(7206):   at dalvik.system.NativeStart.main(Native Method)
09-12 13:46:04.470: D/AndroidRuntime(7206): Shutting down VM
09-12 13:46:04.470: W/dalvikvm(7206): threadid=1: thread exiting with uncaught exception (group=0x40de8908)
09-12 13:46:04.493: E/AndroidRuntime(7206): FATAL EXCEPTION: main
09-12 13:46:04.493: E/AndroidRuntime(7206): java.lang.NullPointerException
09-12 13:46:04.493: E/AndroidRuntime(7206):     at com.example.bookingpage.MainActivity$5.onTouch(MainActivity.java:215)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.View.dispatchTouchEvent(View.java:7138)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2238)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1935)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2244)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2244)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2244)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2244)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2244)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1938)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1392)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.app.Activity.dispatchTouchEvent(Activity.java:2408)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1886)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.View.dispatchPointerEvent(View.java:7323)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3520)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3454)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4543)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4522)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4618)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.os.MessageQueue.nativePollOnce(Native Method)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.os.MessageQueue.next(MessageQueue.java:125)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.os.Looper.loop(Looper.java:140)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at android.app.ActivityThread.main(ActivityThread.java:4987)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at java.lang.reflect.Method.invokeNative(Native Method)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at java.lang.reflect.Method.invoke(Method.java:511)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
09-12 13:46:04.493: E/AndroidRuntime(7206):     at dalvik.system.NativeStart.main(Native Method)
4

2 に答える 2

0

customAlert のクラスを作成する

     public class CustomAlertDialog extends Dialog implements OnClickListener{

private Button mBtnPositive;
private Button mBtnNegative;

private TextView mTvTitle;
private TextView mTvMessage;

private OnClickListener dialogPositiveButtonClickListener;
private OnClickListener dialogNegativeButtonClickListener;

private Context mContext;

// For SingleChoice Mode dialog
private LinearLayout llButtonsContainer;


public CustomAlertDialog(Context context) {
    super(context);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.custom_alert_dialog);

    this.getWindow().setBackgroundDrawableResource(android.R.color.transparent);

    mContext = context;

    mBtnPositive = (Button) findViewById(R.id.alert_button_positive);
    mBtnNegative = (Button) findViewById(R.id.alert_button_negative);

    mTvTitle = (TextView) findViewById(R.id.alert_title);
    mTvMessage = (TextView) findViewById(R.id.alert_message);

    mBtnPositive.setOnClickListener(this);
    mBtnNegative.setOnClickListener(this);
  }

     public static CustomAlertDialog createAlertDialog (Context context, String title ,  OnDismissListener dismissListener) {

    CustomAlertDialog alertDialog = new CustomAlertDialog(context);
    alertDialog.setTitle(title);
    alertDialog.setOnDismissListener(dismissListener);
    alertDialog.setButton("OK", new OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
              dialog.dismiss();
        } });
    return alertDialog;
}   
   }

そしてあなたのcustom_alert_dialog.xml

   <?xml version="1.0" encoding="UTF-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_margin="20dip"
      android:gravity="center"
      android:orientation="vertical" >

<Spinner
android:id="@+id/Tittle"
android:layout_width="290dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:visibility="gone"
android:layout_height="wrap_content"/>

</LinearLayout>

すべてのボタンとすべてをここに置いているわけではありません。これは、アイデアを提供するためのものです。

次に、あなたの activity.class で

     CustomAlertDialog alert = CustomAlertDialog.createAlertDialog(this, "" + "", null, "OK", null, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    logOut();
                }
            });
            alert.show();

繰り返しますが、コード全体を貼り付けているわけではありません。これがお役に立てば幸いです:)

于 2013-09-12T07:55:59.867 に答える