1

我將解釋我在alertBox中完成的操作i爲alertBox充氣視圖,其名稱爲view。在那個視圖中,LinearLayout的名字是'main layout',我膨脹了包含radioGroups和editTexts的另一個視圖。它的名字是佈局。我將第二個視圖(佈局)添加到第一個視圖(視圖)。當我點擊收音機按鈕正常工作。但是當我點擊編輯文本它不會打開softkeyboard -無法打開editText上的鍵盤

我打開一個警告框,充氣視圖。但是當我點擊alertBox中的EditText時,它不顯示軟鍵盤。

Builder alertCreate = new AlertDialog.Builder(parent); 
     alertCreate.setTitle("New Schedule"); 
     inflater = LayoutInflater.from(parent); 
     View view = inflater.inflate(R.layout.activity_schedule, null);  
     spinnerRepeat = (Spinner)view.findViewById(R.id.spinner_schedule_repeat); 

spinnerRepeat.setOnItemSelectedListener(new OnItemSelectedListener() { 

      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       LinearLayout mainLayout= (LinearLayout)view.findViewById(R.id.main_Layout); 
       LinearLayout spinnerLayout = (LinearLayout)view.findViewById(R.id.spinner_Layout); 
       View weeklyLayout = inflater.inflate(R.layout.schedule_week_selection, null); 
       initializeWeeks(weeklyLayout); 
       if(arg2>0) 
       { 
        if(flag==0) 
        { 
         View layout = inflater.inflate(R.layout.schedule_ends_on, null); 
         RelativeLayout layout2 =(RelativeLayout)layout.findViewById(R.id.endsOn_layout);  
         rgEndsOn =(RadioGroup)layout.findViewById(R.id.radioGroup_endsOn); 
         radio_occr=(RadioButton)layout.findViewById(R.id.radio_schedule_occr); 
         radio_date=(RadioButton)layout.findViewById(R.id.radio_schedule_date); 
         occurence=(TextView)layout.findViewById(R.id.tv_schedule_Occur); 
         addCheckListenerToRgEndsOn(); 
         etEndsOn=(EditText)layout.findViewById(R.id.Et_schedule_occur); 
         etEndDate=(EditText)layout.findViewById(R.id.et_schedule_enddate); 
         etEndDate.setClickable(true); 
         etEndDate.setText(formatDate(TimeFormater.DateToString(startDate))); 
         mainLayout.addView(layout, 3); 
         flag=1; 
        } 
        if(arg2==2) 
        { 
         spinnerLayout.addView(weeklyLayout,2); 
        } 
        else 
        { 
         View v = (View)spinnerLayout.getChildAt(2); 
         spinnerLayout.removeView(v); 
        } 
       } 
       else 
       { 
        Log.e("id",""+mainLayout.getChildAt(3)); 
        View v = (View)mainLayout.getChildAt(3); 
        View v2 = (View)spinnerLayout.getChildAt(2); 
        spinnerLayout.removeView(v2); 
        mainLayout.removeView(v); 
        flag=0; 
       } 
      } 

但是當我點擊的EditText(etEndsOn)它不會彈出鍵盤

+0

粘貼您的清單 – Aamirkhan 2013-04-24 09:31:44

回答

2

你必須給分衆的佈局。我也面臨這個問題。使用下面的代碼。希望這可以工作。

RelativeLayout layout2 =(RelativeLayout)layout.findViewById(R.id.endsOn_layout); 
layout2.setFocusableInTouchMode(true); 
layout2.requestFocus(); 

UPDATE

LinearLayout mainLayout= (LinearLayout)view.findViewById(R.id.main_Layout); 
    mainLayout.setFocusableInTouchMode(true); 
    mainLayout.requestFocus(); 
+0

確定我將檢查 – Vikky 2013-04-24 08:58:09

+0

沒有它不工作.. 我會解釋我在做alertBox 我充氣的alertBox它的名字是圖的圖。 ,並在該視圖中LinearLayout的名稱是'主佈局' 我膨脹另一個視圖,其中包含radioGroups和editTexts。 它的名字是佈局。我將第二個視圖(佈局)添加到第一個視圖(視圖)。當我點擊收音機按鈕正常工作。但是當我點擊editText時,它不會打開軟鍵盤 – Vikky 2013-04-24 09:06:16

+0

Ohk。試着穿上mainLayout。我更新答案。請檢查。 – 2013-04-24 09:20:56

3

我面臨同樣的問題,因爲你...並試圖設置一些參數(編程和XML),但它似乎沒有工作。

但是有,我已經實現了一個解決方案,它爲我的作品:

在onCreate方法我充滿了參數的EditText上(只是寬度和高度),並呼籲的方法來顯示AlertDialog:

EditText input = new EditText(this); 
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.FILL_PARENT, 
      LinearLayout.LayoutParams.FILL_PARENT); 
    input.setLayoutParams(lp); 

    createInputDialog(this, this, this, input); 

而且繼承人的createInputDialog方法:

public void createInputDialog(final Activity ga, 
     DialogInterface.OnClickListener listener, 
     DialogInterface.OnKeyListener keylistener, EditText input) { 

    AlertDialog.Builder editalert = new AlertDialog.Builder(ga); 
    editalert 
      .setTitle(
        getResources().getString(R.string.input_dialog_title)) 
      .setMessage(
        getResources().getString(
          R.string.input_dialog_description)) 
      .setView(input) 
      .setPositiveButton(
        getResources().getString(R.string.dialog_save_button), 
        listener) 
      .setNegativeButton(
        getResources().getString(R.string.button_cancel), 
        listener).setOnKeyListener(keylistener); 

    if (alert_input == null) { 
     alert_input = editalert.create(); 
    } 

} 

然後,我只是要顯示警報每當我想和工作的EditText就像它必須是的。

我希望工程

相關問題