2016-08-11 4 views
0

У меня есть две кнопки в моем макете. Сначала отображается тост и другой диалог. Я хочу, чтобы нажимать на первую кнопку и показывать тост, даже когда отображается диалог. В настоящее время, когда я касаюсь первой кнопки (в первый раз), диалог отбрасывается, и когда я снова касаюсь первой кнопки (второй раз), появляется тост. Я хочу показать тост при первом щелчке. Является ли это возможным?нажатие кнопки за пределами диалога

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.sam.myregistrationapplication.MainActivity"> 


    <Button 
     android:id="@+id/btn1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="50dp" 
     android:text="close dialog"/> 

    <Button 
     android:id="@+id/btn2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/btn1" 
     android:layout_margin="50dp" 
     android:text="show dialog"/> 

</RelativeLayout> 
public class MainActivity extends AppCompatActivity { 

    Button btn1, btn2; 
    Dialog pDialog; 

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

     btn1 = (Button)findViewById(R.id.btn1); 
     btn2 = (Button)findViewById(R.id.btn2); 

     btn1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Toast.makeText(getApplicationContext(), "First Button", Toast.LENGTH_SHORT).show(); 
      } 
     }); 


     btn2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       pDialog = new Dialog(MainActivity.this); 
       pDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
       pDialog.setContentView(R.layout.alertdialog); 


       pDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); 



       Button dialogButton = (Button) pDialog.findViewById(R.id.btn3); 

       dialogButton.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         pDialog.dismiss(); 
        } 
       }); 

       pDialog.show(); 

      } 
     }); 

    } 
} 
+0

кол-во кол-во в начале –

+0

Невозможно. –

+0

Возможный дубликат [диалогового окна Android: есть ли способ сделать фоновый пользовательский интерфейс Android в интерактивном режиме отображаемым?] (Http://stackoverflow.com/questions/32932536/android-dialog-is-there-a-way-to -make-background-android-ui-clickable-while-di) –

ответ

0

Если Diologue показывает, что время вы не можете нажать на любую кнопку на вашей деятельности. Второе дело в том, что если вы не хотите, чтобы освобождаемый вашего диалога, пока ваша задача не завершена, то используйте ниже линии -

pDialog.setCancelable(false); 
0

использования двух кнопок

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context="com.sam.myregistrationapplication.MainActivity"> 


     <Button 
      android:id="@+id/btn1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="50dp" 
      android:text="close dialog"/> 

     <Button 
      android:id="@+id/btn2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/btn1" 
      android:layout_margin="50dp" 
      android:visibility="gone" 
      android:text="show dialog"/> 

    </RelativeLayout> 

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

public class MainActivity extends AppCompatActivity { 

     Button btn1, btn2; 
     Dialog pDialog; 

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

     btn1 = (Button)findViewById(R.id.btn1); 
     btn2 = (Button)findViewById(R.id.btn2); 

     btn1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
      Toast.makeText(getApplicationContext(), "First Button", Toast.LENGTH_SHORT).show(); 
      btn1.setVisibility(View.GONE); 
      btn2.setVisibility(View.VISIBLE); 
      } 
     }); 


     btn2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
      btn1.setVisibility(View.VISIBLE); 
      btn2.setVisibility(View.GONE); 
       pDialog = new Dialog(MainActivity.this); 
       pDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
       pDialog.setContentView(R.layout.alertdialog); 
    pDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); 



      Button dialogButton = (Button) pDialog.findViewById(R.id.btn3); 

      dialogButton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        pDialog.dismiss(); 
       } 
       }); 

       pDialog.show(); 

      } 
     }); 

    } 
} 
+0

Я не хочу, чтобы какая-либо видимость кнопки исчезла. Я просто хочу, чтобы можно было щелкнуть по первой кнопке, показывая всплывающее окно @anurag – CodeAssasins

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