2013-12-01 4 views
-1

У меня проблемы с этим. когда вы нажимаете элемент, появляется диалог, показывающий содержимое в "cambiar.xml", я хочу закрыть диалог при нажатии «ОК» или «Борар», я пробовал все, но я не могу, вот код!Кнопка закрытия диалогового окна внутри себя

public class Iniciado extends Activity{ 

TextView tv3; 
ListView listView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.iniciado); 
    tv3=(TextView)findViewById(R.id.tv3); 
    Bundle bolsar = getIntent().getExtras(); 
    tv3.setText("Bienvenido "+ bolsar.getString("NombreKey")); 

    listView = (ListView)findViewById(R.id.list); 

    // Defined Array values to show in ListView 
    String[] values = new String[] { "Android List View", 
            "Adapter implementation", 
            "Simple List View In Android", 
            "Create List View Android", 
            "Android Example", 
            "List View Source Code", 
            "List View Array Adapter", 
            "Android Example List View" 
            }; 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, android.R.id.text1, values); 


      // Assign adapter to ListView 
      listView.setAdapter(adapter); 

      // ListView Item Click Listener 
      listView.setOnItemClickListener(new OnItemClickListener() { 

       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

       // ListView Clicked item index 
       int itemPosition  = position; 

       // ListView Clicked item value 
       String itemValue = (String) listView.getItemAtPosition(position); 

        // Show Alert 
        Toast.makeText(getApplicationContext(), 
        "Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG) 
        .show(); 

        Dialog d = new Dialog(Iniciado.this); 
        d.setTitle("Editar evento"); 
        d.setContentView(R.layout.cambiar); 
        d.show(); 

       } 


      }); 
} 

Извините за мой английский и спасибо!

I finnaly решил это, вот код класса, у которого есть кнопка, открывающая диалог!

package com.example.iniciosesion; 

import android.app.Activity; 
import android.app.Dialog; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.view.View.OnClickListener; 
import android.widget.EditText; 
import android.widget.ListView; 
import android.widget.Toast; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.TextView; 

public class Iniciado extends Activity { 

    TextView tv3; 
    ListView listView; 
    final Context context = this; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.iniciado); 
     tv3=(TextView)findViewById(R.id.tv3); 
     Bundle bolsar = getIntent().getExtras(); 
     tv3.setText("Bienvenido "+ bolsar.getString("NombreKey")); 
     listView = (ListView)findViewById(R.id.list); 

     // Defined Array values to show in ListView 
     String[] values = new String[] { "Android List View", 
             "Adapter implementation", 
             "Simple List View In Android", 
             "Create List View Android", 
             "Android Example", 
             "List View Source Code", 
             "List View Array Adapter", 
             "Android Example List View" 
             }; 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, android.R.id.text1, values); 


       // Assign adapter to ListView 
       listView.setAdapter(adapter); 

       // ListView Item Click Listener 
       listView.setOnItemClickListener(new OnItemClickListener() { 

        @Override 
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

        // ListView Clicked item index 
        int itemPosition  = position; 

        // ListView Clicked item value 
        String itemValue = (String) listView.getItemAtPosition(position); 

         // Show Alert 
         Toast.makeText(getApplicationContext(), 
         "Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG) 
         .show(); 

         // Make Dialog     

         final Dialog dialog = new Dialog(context); 
         dialog.setContentView(R.layout.cambiar); 
         dialog.setTitle("Title..."); 

         // set the custom dialog components - text, image and button 
         EditText editar = (EditText) dialog.findViewById(R.id.eteditar); 

         Button dialogButton = (Button) dialog.findViewById(R.id.okbtn); 
         // if button is clicked, close the custom dialog 
         dialogButton.setOnClickListener(new OnClickListener() { 
          @Override 
          public void onClick(View v) { 
           dialog.dismiss(); 
          } 
         }); 

         dialog.show(); 

        } 
      }); 

     } 


    } 

и вот код диалогового расположения:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="10dp" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/eteditar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" > 
    </EditText> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/eteditar" > 

     <Button 
      android:id="@+id/okbtn" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="OK" /> 

     <Button 
      android:id="@+id/borrarbtn" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Borrar" /> 
    </LinearLayout> 

</RelativeLayout> 

спасибо!

ответ

0

вам нужно будет initilize обе кнопки в диалоговом окне макета для выполнения действий кнопки мыши, которая находится внутри Диалог раскладки, как:

Button btn_OK = (Button) d.findViewById(R.id.dialog_btn_ok); 

btn_OK.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // close Dialog here 
       d.dismiss(); 
      } 
     }); 

сделать то же самое для Borrar кнопки также

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