2014-10-02 2 views
0

Это мой код:Как dismiss alert dialog whem list item click in android

Когда я нажимаю на текстовое окно, отображается один список отображения диалогов. Когда я выбираю конкретный диалог, элемент не отклоняется. как отклонить диалог, когда элемент списка щелкают,

educationtxt=(TextView)findViewById(R.id.education_txt); 
String[] educationarray = new String[]{"High School","Som College","Associates Degree","Bachelor Degree","Masters Degree","PHD"}; 
educationtxt.setOnClickListener(new OnClickListener() { 

@Override 
public void onClick(View v) { 
    final ListView lv ; 
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(RegistrationActivity.this); 
    LayoutInflater inflater = getLayoutInflater(); 
    View convertView = (View) inflater.inflate(R.layout.custom_dialog, null); 
    alertDialog.setView(convertView); 
    alertDialog.setTitle("Education"); 
    View convertView1 = (View) inflater.inflate(R.layout.custom_dialog_row, null); 
    TextView tv =(TextView)convertView1.findViewById(R.id.list_row_txt); 
    lv = (ListView) convertView.findViewById(R.id.custom_listView1); 
    lv.setBackgroundColor(Color.WHITE); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(RegistrationActivity.this,R.layout.custom_dialog_row,R.id.list_row_txt,educationarray); 
    lv.setAdapter(adapter); 
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     education_selected = lv.getAdapter().getItem(position).toString(); 
     educationtxt.setText(education_selected); 
     Toast.makeText(RegistrationActivity.this, "You Clicked at "+education_selected, Toast.LENGTH_SHORT).show(); 
     //here i want dismiss 
    } 
    }); 
    alertDialog.show(); 
} 
}); 
+0

Эй, вы реализуете решение? –

+0

alertDialog.dismiss(); После вашего Toast .. – Dhina

+0

, пожалуйста, сделайте мои ответы правильными, если вы получите решение. –

ответ

6
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> parent, View view, 
              int position, long id) { 
         education_selected = lv.getAdapter().getItem(position).toString(); 
         educationtxt.setText(education_selected); 
         Toast.makeText(RegistrationActivity.this, "You Clicked at "+education_selected, Toast.LENGTH_SHORT).show(); 
         //here i want dismiss 
         alertDialog.dissmiss(); <----- add this lone to dismiss 
        } 
       }); 

и сделать alertdialoge как окончательный

+0

plz mafrk как правильный ответ –

0

Это окончательный код:

eyecolortxt.setOnClickListener(new OnClickListener() 
{ 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       final ListView lv ; 
      final AlertDialog.Builder alertDialog = new AlertDialog.Builder(RegistrationActivity.this); 
        LayoutInflater inflater = getLayoutInflater(); 
        View convertView = (View) inflater.inflate(R.layout.custom_dialog, null); 
        alertDialog.setView(convertView); 
        alertDialog.setTitle("Eye Color"); 
        View convertView1 = (View) inflater.inflate(R.layout.custom_dialog_row, null); 
        TextView tv =(TextView)convertView1.findViewById(R.id.list_row_txt); 
        lv = (ListView) convertView.findViewById(R.id.custom_listView1); 
        lv.setBackgroundColor(Color.WHITE); 
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(RegistrationActivity.this,R.layout.custom_dialog_row,R.id.list_row_txt,eyeArray); 
        lv.setAdapter(adapter); 


        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
         @Override 
         public void onItemClick(AdapterView<?> parent, View view, 
               int position, long id) { 
          eye_color_selected = lv.getAdapter().getItem(position).toString(); 
          eyecolortxt.setText(eye_color_selected); 
          Toast.makeText(RegistrationActivity.this, "You Clicked at "+eye_color_selected, Toast.LENGTH_SHORT).show(); 
           alertDialog.dissmiss(); 
         } 
        }); 
        alertDialog.show(); 
      } 
     }); 

также не работает, и я буду получать Метод dissmiss() не определен для типа AlertDialog.Builder в alertDialog.dissmiss(); line