2012-05-09 180 views
1

我用微調和確定按鈕創建了一個自定義對話框。我已經用一些項目填充了這個微調,並誇大了佈局。如果我單擊確定按鈕,對話框將會消失。 我設置了微調關閉自定義對話框android

spinner.performCLick(); 

是有什麼辦法讓微調選定的項目,並關閉該對話框不按OK按鈕。我試過

button.performclick(); 

但沒用。

+0

也許張貼定製對話框的代碼,並幫助人們理解這一點更好。此外,您想要獲取微調項目並關閉對話框的代碼(我承擔除了OK按鈕之外的其他用戶操作) – MikeIsrael

+0

非常感謝。對不起,我很新..忽略我 – user1336442

+0

沒有必要道歉,我只是注意到你接受了一個答案,很高興你得到了你需要的東西。 – MikeIsrael

回答

0

看我下面的代碼它可以幫助你。

package com.Test_dia; 

import android.app.Activity; 

import android.app.Dialog; 

import android.os.Bundle; 

import android.view.View; 

import android.view.View.OnClickListener; 

import android.widget.AdapterView; 

import android.widget.AdapterView.OnItemSelectedListener; 

import android.widget.ArrayAdapter; 

import android.widget.Button; 

import android.widget.Spinner; 

import android.widget.Toast; 

public class Test_diaActivity extends Activity { 

    private Button btn; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     btn = (Button) findViewById(R.id.button1); 
     btn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       showalert(); 
      } 
     }); 
    } 

    protected void showalert() { 
     // TODO Auto-generated method stub 
     final Dialog dia = new Dialog(this); 
     dia.setContentView(R.layout.dia); 
     final String a[] = { "select one", "android", "java", "php" }; 

     Button btnok = (Button) dia.findViewById(R.id.button2); 
     Spinner spin = (Spinner) dia.findViewById(R.id.spinner1); 

     btnok.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       dia.dismiss(); 
      } 
     }); 

     spin.setAdapter(new ArrayAdapter<String>(this, 
       android.R.layout.simple_dropdown_item_1line, a)); 

     spin.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       // TODO Auto-generated method stub 
       if (arg2 > 0) { 
        Toast.makeText(Test_diaActivity.this, 
          "You Selected :" + a[arg2], Toast.LENGTH_SHORT) 
          .show(); 
        dia.dismiss(); 
       } 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 

     dia.show(); 
    } 
} 

main.xml中

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="click here" /> 

</LinearLayout> 

dia.xml

<Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="16dp" /> 

<Button 
    android:id="@+id/button2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/spinner1" 
    android:text="ok" /> 

這段代碼對我來說非常合適。

享受....

0

編輯(刪除以前的非合適的答案)

我會假設你的問題是使用setOnItemSelectedListener在啓動時(從而選擇在微調中的第一項沒有任何射擊練習「onItemSelected」用戶輸入),你不想要。

如果是這種情況,請嘗試以下操作。在setOnItemSelectedListener

private int newSpinner = 0; 

然後:

設置類變量

spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
     } 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view,int pos, long id) { 
      if (newSpinner != 0) { 
       // Do your code thing here 
       dismiss(); 
      } else { 
       newSpinner++ 
      } 
     } 
    }); 
+0

沒有它沒有工作..我已經試過這個選項 – user1336442

+0

它不工作? – Barak

+0

我不確定。但有沒有什麼辦法來檢測微調項目點擊 – user1336442