2016-12-01 64 views
0

How to automatically Click a Button in Android after a 5 second delay如何在Android的自动点击一个按钮,每一秒

我与在链接进入,但我的应用程序崩溃 我的代码的代码尝试;

public class MainActivity extends AppCompatActivity { 
    Button button; 
    TextView text; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     try { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      buttonClick(); 
      Thread timer = new Thread() { 
       public void run() { 
        try { 
         sleep(1000); 
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } finally { 
         button.performClick(); 

        } 
       } 
      }; 
      timer.start(); 
     } catch (Resources.NotFoundException e) { 
      e.printStackTrace(); 
     } 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       button.performClick(); 
      } 
     }, 1000); 

    } 

    public void buttonClick() { 
     button=(Button) findViewById(R.id.button); 
     text=(TextView) findViewById(R.id.text); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Random s=new Random(); 
       int number=s.nextInt(3); 
       switch (number) 
       {case 1:text.setText("1"); 
        break; 
        case 2: text.setText("2"); 
         break; 


       } 
      } 
     }); 

    } 

} 

Logcat Error

+1

你不需要点击一个按钮的方法,你只需要调用的方法每5秒...... –

+0

和错误是因为你不能像从另一个线程处理GUI元素那 –

回答

0

这是每秒运行更简单的方法。你不需要触发按钮。只是打电话要执行

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

     Handler handler = new Handler(); 

     Runnable runnable = new Runnable(){ 
      @Override 
      public void run() { 
       buttonClick(); 
       if(handler!=null) 
        handler.postDelayed(runnable, 1000); 
      } 
     } 

     handler.postDelayed(runnable, 1000); 

    } 
相关问题