2016-04-18 5 views
1

я хочу использовать пользовательский диалог, в моем андроиде проекта, нажав на пунктах управления ListViewкак иметь пользовательский диалог как списке следует itemClickListener в Android

я настроить диалог моего в differt класса, как показано ниже:

public class CustomDialogOption extends Dialog { 
    public Activity activity; 
    public Button dialog_delete, dialog_edit; 
    public TextView dialog_msg; 

    public CustomDialogOption (Activity a) { 
     super(a); 
     this.activity = a; 
    } 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.dialog_counting); 

     dialog_msg = (TextView) findViewById(R.id.dialogContet); 
     dialog_delete = (Button) findViewById(R.id.delete); 
     dialog_edit = (Button) findViewById(R.id.edit); 




     dialog_msg.setText("..." + user_number.get(i) + " " 
       + user_vow.get(i) + " " + user_why.get(i)); 
     dialog_delete.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(
         getApplicationContext(), 
         user_number.get(i) + " " 
           + " delete..", Toast.LENGTH_LONG).show(); 


      } 
     }); 

и я хочу показать этот диалог на мой ListView нажав ниже: MainActiviyclass

public class MainActivity extends AppCompatActivity { 
private ListView listView; 


public final static ArrayList<String> user_number = new ArrayList<String>(); 


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


    //remain numbers -item click listener for Done-vow 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, final int i, long l) { 


      CustomDialogOption cdo = new CustomDialogOption(MainActivity.this ,i); 
      cdo.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
      cdo.show(); 
     } 
    }); 

}

моя проблема в том, что как я могу связать судно между OnItemClickListener методом (int i) и CustomDialogOption классом. Параметр «i» не определяется. Что я могу сделать? Спасибо за вашу помощь.

ответ

3

Определите int i или что бы вы ни назвали в CustomDialogOption.

Добавить int i в парах конструктору как этого

public CustomDialogOption (Activity a, Int i) { 
      super(a); 
      this.activity = a; 
      this.i = i;  
     } 

и назвать его, как этот

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, final int i, long l) { 
      CustomDialogOption cdo = new CustomDialogOption(MainActivity.this, i); 
      cdo.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
      cdo.show(); 
     } 
    }); 
+0

я сделать это, но мое приложение остановилось –

+0

Это, как вы можете связать. Для части сбоя, пожалуйста, поделитесь надлежащими журналами. Также я вижу 'user_number.get (i)' в вашем классе 'CustomDialogOption', но не вижу никакого объявления' user_number'. –

+0

04-18 07: 12: 58.265 24118-24152/vow_note.maxsoft.com.vownote E/Поверхность: getSlotFromBufferLocked: неизвестный буфер: 0xb3fd8270 –

 Смежные вопросы

  • Нет связанных вопросов^_^