2016-10-21 8 views
1

에 사용자가 클릭 I가 사용자에게 키보드를 표시하고자 할 때 사용자 정의에 AlertDialog 위에 표시되지 대화 상자. 는 이미이 같은 매니페스트 내 활동을 설정 한 :키보드 위에 나는 내에 AlertDialog, 이미</p> <pre><code>InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(input.getWindowToken(), 0); </code></pre> <p>그러나, 키보드 아래에 표시됩니다으로 시도했습니다 때 글고

<activity 
    android:name=".ActivityMain" 
    android:label="@string/app_name" 
    android:windowSoftInputMode="adjustResize" 
    /> 

는 여기에 내가 대화

public void createConstDialog(String[] textstring) { 
      AlertDialog.Builder builder = 
        new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle); 
      LayoutInflater inflater = this.getLayoutInflater(); 
      final View dialogView = inflater.inflate(R.layout.dialog_editconstantformula, null); 
      builder.setView(dialogView); 
      builder.setTitle("Edit Values"); 
      builder.setCancelable(false); 
     // ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.activity_view_calculator_formula, R.id.constid, textstring); 
      lv = (ListView) dialogView.findViewById(R.id.list_view1); 
      final MyListAdapter myListAdapter = new MyListAdapter(); 
      lv.setAdapter(myListAdapter); 
      lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, final int position, long viewId) { 
        mConstid = (TextView) view.findViewById(R.id.constid); 
        mConstid.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View view) { 
          Log.d("touched", "" + position); 
         } 
        }); 
        mConstvalue = (EditText) view.findViewById(R.id.constvaluez); 
        mConstvalue.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View view) { 
          Log.d("touched", "" + position); 
         } 
        }); 


       } 
      }); 
      builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        for (int i = 0; i < lv.getCount(); i++) { 
         View wantedView = lv.getChildAt(i); 
         mConstvalue = (EditText) wantedView.findViewById(R.id.constvaluez); 
         String letter = lv.getItemAtPosition(i).toString(); 
         String value = mConstvalue.getText().toString(); 
         Log.d("touched", (letter + "valore: " + mConstvalue.getText().toString())); 
         mFormulaEditText.setText(mFormulaEditText.getText().toString().replaceAll(letter, value)); 
        } 
        dialog.dismiss(); 
       } 
      }); 
      builder.show(); 
     } 




    R.layout.dialog_editconstantformula 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
    <ListView 
     android:id="@+id/list_view1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:dividerHeight="1dp" 
     android:padding="10dp" > 
    </ListView> 
</LinearLayout> 

을 생성하는 데 사용되는 코드입니다하지만에 AlertDialog에서 다른 활동에서 비슷한 코드 (와. builder to (false);), edittext를 클릭하면 키보드가 표시됩니다. edittext에서 내 listview를 제거하려고했지만 아무 일도 일어나지 않습니다.

답변

0

동일한 문제가있는 경우 을 "android:windowSoftInputMode="stateVisible"

으로 대체해야합니다.