2011-11-22 2 views
0

버튼이있는 Main.xml을 만들었습니다. 그들은 모두 특정 행동을 수행하며 이것은 모두 괜찮지 만 암호로 보호 된 버튼이 있어야합니다. 그래서 두 번째 xml (popup.xml)도 만들었습니다. 사용자가 버튼을 누르면 팝업됩니다. popup.xml에는 사용자 입력을위한 텍스트 필드와 제출 버튼이 있습니다. 나는 버튼을 팝업에 눌러 순간 Android에서 팝업을 만들고 기본보기에 데이터를 제출하려면 어떻게해야합니까?

가 나타납니다,하지만 난 기본보기에 사용자가 입력 한 데이터를 제출하거나 버튼을 눌러 다시 기본보기로 이동하는 방법을 모르겠어요. 그것을 제거 할 수는 dismiss()를 호출 -

public class BastiLauncherActivity extends Activity implements OnClickListener { 

    private Button b1;  
    // ... 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     // this b1 is a button in the main view where this pop up should appear 
     b1 = (Button) findViewById(R.id.b1Button); 
     b1.setOnClickListener(this); 
     // ... 
    } 

    @Override 
    public void onClick(View v) { 
     LayoutInflater inflater = 
       (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     PopupWindow pw = new PopupWindow(inflater.inflate(R.layout.popup, null, 
       false), 200, 300, true); 
     pw.setOutsideTouchable(true); 

     if (v == b1) { 
      // opening the popup 
      pw.showAtLocation(findViewById(R.id.dateiButton), Gravity.CENTER, 0, 0); 

     } else if (...) { 

     } 
    } 
} 
+1

난 당신이 채우기 위해 어떤 형태를 보여주기 위해 대화 상자를 사용할 수 있어야하며 다음의 EditText의 값, 당신의 XML file.http의에서 사용자 정의보기로 대화를 위해이 링크를 참조하는 것이 얻을 수 있다고 생각 : // 개발자 .android.com/guide/topics/ui/dialogs.html – Herry

답변

4

나는 당신이 PopupWindow를 사용하고 참조하십시오.

그냥 다음 몇 가지 사용자 입력을 캡처 당시 나는 사용자 정의 대화 상자를 사용하는 것이 좋습니다 것 팝업창을 산란 활동에 반환하는 팝업합니다. 대화 상자에서 원하는대로 만들 수 있으며 필요한 각 버튼을 각 버튼에 대한 핸들러와 함께 추가 할 수 있습니다. 보기;

new AlertDialog.Builder(Main.this) 
       .setTitle("Enter password") 
       .setMessage("Password required for this function") 
       .setView(/* You view layout */) 
       .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 
         Editable value = input.getText(); 
        } 
       }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 
         // Do nothing. 
        } 
       }).show(); 
+0

안녕하세요, 다시 나입니다. 나는 정말로 그것을 얻지 않는다고 생각한다. 내 응용 프로그램에이 코드를 넣고 "확인"및 "취소"단추가있는 경고 상자가 나타납니다. 그들은 둘 다 아무것도하지 않습니다. 어떻게 사용자 입력에 대한 텍스트 필드를 추가하고 그것을 확인할 수 있습니다. – B770

+0

AlertDialog.Builder alertbox = 새로운 AlertDialog.Builder (this); alertbox.setTitle ("비밀번호 입력"); alertbox.setMessage ("이 funktion에 필요한 비밀번호"); setNegativeButton ("Cancel") {// 편집 가능한 값 = input.getText(); }} setNegativeButton ("Cancel" 새로운 DialogInterface.OnClickListener() { 공공 무효 온 클릭 (DialogInterface 대화, INT whichButton) { } }) 쇼().; – B770

관련 문제