2013-05-01 2 views
1

EditText와 ListView가 포함 된 android에서 사용자 정의 대화 상자를 만들었습니다. Item을 선택하면 onItemClickListener의 목록보기가 올바르게 시작되지만 내 EditText의 수신기에는 해당되지 않습니다. EditText 리스너가 대화 상자에있을 때 실행되지 않음

내 코드입니다 : 내가 게시물을 삭제하려고했다

EditText filterEditText; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

LayoutInflater factory = LayoutInflater.from(this); 
View content = factory.inflate(R.layout.dialog_layout, null); 
filterEditText = (EditText) content 
     .findViewById(R.id.filterEditText); 
filterEditText.addTextChangedListener(txtListener); 

............ 


    TextWatcher txtListener = new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence arg0, int arg1, int arg2, 
       int arg3) { 

      filterEditText.setText("text entered"); 
     } 

     @Override 
     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
       int arg3) { 
      // TODO Auto-generated method stub 
     } 

     @Override 
     public void afterTextChanged(Editable arg0) { 
      // TODO Auto-generated method stub 
     } 
    }; 

답변

4

,하지만 난 사람이 같은 문제에 직면하는 경우에 솔루션을 넣어하기로 결정했습니다.

public void createLocationsDialog() { 

    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 

    builder.setTitle("Choose a location"); 

    LayoutInflater factory = LayoutInflater.from(MainActivity.this); 
    View content = factory.inflate(R.layout.dialog_layout, null); 

    ListView locationsList = (ListView) content 
      .findViewById(R.id.locationsListView); 
    filterEditText = (EditText) content 
      .findViewById(R.id.filterEditText); 

    ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(
      MainActivity.this, android.R.layout.simple_list_item_1, 
      data.getName()); 
    locationsList.setAdapter(modeAdapter); 

    builder.setView(content); 

    locationsDialog = builder.create(); 

    locationsList.setOnItemClickListener(listItemClicked); 
    filterEditText.addTextChangedListener(txtListener); 

    locationsDialog.show(); 
} 
+0

저도 같은 문제로하지만'DialogFragment'에 달렸다 :

는 내가 대화 상자를 생성하는 방법에에서 onCreate에서 내 코드를 이동하여 그것을 해결. 명확하게 말하면'builder.create()'를 호출하는'TextChangedListener'를 추가하십시오. – Ivan

관련 문제