实现在布局上的任何位置单击

时间:2017-11-16 23:42:31

标签: android

我想在布局的任何地方实现点击,但出于某种原因应用程序停止,我不明白为什么。这是我的代码的相关部分

public class MainActivity extends AppCompatActivity {
....
    private TextView Issue;
 ....
 private Handler handler = new Handler();
 private Runnable runnable = new Runnable() {
        @Override
        public void run() {
....

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


 ////here is where I code to touch screen  
 RelativeLayout rlayout = (RelativeLayout) findViewById(R.id.mainlayout);
        rlayout.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View arg0, MotionEvent arg1) {

               mp.stop();
                return true;
            }
        });

我还尝试了OnClickListener而不是setOnTouchListener,但它并没有解决。感谢

2 个答案:

答案 0 :(得分:0)

点击你的relativelayout

 <RelativeLayout
        android:id="@+id/mainlayout"
        android:layout_width="match_parent"
        android:clickable="true"
        android:layout_height="wrap_content"/>

然后使用onclicklistener

rlayout.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
         mp.stop();
      }
    });

答案 1 :(得分:0)

1.别忘了添加setContentView

2.将RelativeLayout设为全局变量,将在其他方法中使用

3.在setOnClickListener

上使用RelativeLayout
private RelativeLayout rlayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // add setContentView here
    setContentView(R.layout.activity_main);
    //here is where I code to touch screen
    // set rlayout as global variable ,you can use it in other method
    rlayout = (RelativeLayout) findViewById(R.id.mainlayout);
    rlayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mp.stop();
        }
    });
}