2016-11-21 1 views
1

Что у меня есть: У меня есть активность, где я показываю диалог.Как создать событие щелчка в позиции на экране

Что я пытаюсь сделать: Я пытаюсь выполнить событие щелчка на кнопке «Да» в диалоговом окне после его отображения. (, не касаясь его)

Вопрос: Можно ли выполнить его, если так любой образец


MainActivity.java

public class MainActivity extends AppCompatActivity { 


    RelativeLayout activity_main; 
    float centreX,centreY; 

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

     activity_main=(RelativeLayout) findViewById(R.id.activity_main); 

     setDialog(); 

    } 

    private void setDialog() { 

     int mWidth= this.getResources().getDisplayMetrics().widthPixels; 
     int mHeight= this.getResources().getDisplayMetrics().heightPixels; 


     simulateClick(mWidth+200,mHeight+200); 

     new AlertDialog.Builder(MainActivity.this) 
       .setTitle("Woahhhh") 
       .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         // continue with delete 
        } 
       }) 
       .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         // do nothing 
        } 
       }) 
       .setIcon(android.R.drawable.ic_dialog_alert) 
       .show(); 
    } 
} 

activity_main.xml

<?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:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.testing.touchevent.MainActivity"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Hello World!" /> 
</RelativeLayout> 
+1

вы можете создать собственный диалог с пользовательского макета (с ОК и кнопку отмены) и использовать ** buttonObject.performClick(); ** для достижения результата – sajan

+0

Могу ли я спросить, что конечная цель этого? Я не собираюсь подглядывать, но если у вас нет особого смысла симулировать щелчок, я бы просто просто вызвал код, который был бы запущен, если бы на самом деле произошел щелчок. Я предполагаю, что для вас что-то особенное делает, что делает это неосуществимым? – clownba0t

ответ

0

Вы должны найти кнопку, которую вы хотите щелкнуть по диалоговому интерфейсу, а затем выполнить клик на нем.

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) 
       .setTitle("Woahhhh") 
       .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         // continue with delete 
        } 
       }) 
       .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         // do nothing 
        } 
       }) 
       .setIcon(android.R.drawable.ic_dialog_alert); 
     AlertDialog dialog = builder.create(); 
     dialog.show(); 
     dialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick(); 

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

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