2016-04-18 15 views
1

Ich möchte wie das Klicken auf Listenansicht der Elemente einen benutzerdefinierten Dialog in meinem Android-Projekt verwendenwie in benutzerdefinierten Dialog als Listview itemClickListener haben android

i mein Dialog in DIFFERT Klasse anpassen, wie unten:

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(); 


      } 
     }); 

und ich möchte, um diesen Dialog zeigen, auf meiner Listenansicht klicken, wie unten: 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(); 
     } 
    }); 

}

mein Problem ist, dass wie kann ich Beziehung haben zwischen OnItemClickListener Methode (Int i) und CustomDialogOption Klasse. Der Parameter "i" ist nicht definiert. Was kann ich tun? danke für Ihre Hilfe.

Antwort

3

Definieren Sie ein int i oder wie immer Sie es in CustomDialogOption benennen.

int i als param hinzufügen, ähnlich wie dies i so tue

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

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

und nennt es Konstruktor, aber mein App gestoppt hat –

+0

Dies ist, wie Sie verknüpfen können. Für den Absturz teilen Sie bitte die richtigen Protokolle. Ich sehe auch 'user_number.get (i)' in Ihrer 'CustomDialogOption' Klasse, aber keine Deklaration von' user_number'. –

+0

04-18 07: 12: 58.265 24-188-24152/vow_note.maxsoft.com.vownote E/Oberfläche: getSlotFromBufferLocked: unbekannter Puffer: 0xb3fd8270 –

Verwandte Themen