对多个Linerlayout设置点击事件,并实现Activity的跳转。(用Switch简化多次设置点击事件的重复代码)

来源:互联网 发布:vc socket编程 编辑:程序博客网 时间:2024/06/05 03:15

想实现多个LinerLayout点击事件,每个都设置OnClickListener监听的话,太麻烦,所以用Switch实现。在网上找了很久,只有一部分代码。经过研究,终于写了个完整的实例代码。还有一点需要注意,每个要跳转的activity都要在AndroidManifest中注册,不然跳转时,应用程序要意外停止。

这是代码实例的用法:

package com.exam.gailv;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;

public class ExamActivity extends Activity {
private LinearLayout linear1;
private LinearLayout linear2;
private LinearLayout linear3;
private LinearLayout linear4;

public void onCreate(Bundle saveInstanceState)
{
super.onCreate(saveInstanceState);
setContentView(R.layout.exam_layout);

linear1= (LinearLayout) findViewById(R.id.l11);
linear2= (LinearLayout) findViewById(R.id.l12);
linear3= (LinearLayout) findViewById(R.id.l21);
linear4= (LinearLayout) findViewById(R.id.l22);

linear1.setOnClickListener(onclicklistener);
linear2.setOnClickListener(onclicklistener);
linear3.setOnClickListener(onclicklistener);
linear4.setOnClickListener(onclicklistener);

}


//注意这个监听器要单独写在onCreate方法外面实现。(这其实是java里的匿名类)如果写在onCreate方法里面,虽然不会报错,但跳转会没有反应。为了在onCreate方法里面还想实现实现跳转,这时只能一个linerlayout添加一个事件监听器OnClicklistener,这个较简单,就是比较繁琐,不再列出代码(本质为内部匿名类)
public OnClickListener onclicklistener=new OnClickListener(){
public void onClick(View v){

switch (v.getId()) {
case R.id.l11:
Intent intent1= new Intent();
intent1.setClass(ExamActivity.this,ExamDatabase.class);
startActivity(intent1);
break;
case R.id.l12:
Intent intent2= new Intent();
intent2.setClass(ExamActivity.this,ExamPaper.class);
startActivity(intent2);

break;
case R.id.l21:
Intent intent3= new Intent();
intent3.setClass(ExamActivity.this,TypeQuestion.class);
startActivity(intent3);
break;
case R.id.l22:
Intent intent4= new Intent();
intent4.setClass(ExamActivity.this,RandomPractice.class);
startActivity(intent4);
break;
default:
break;
}
}
};

原创粉丝点击