最近项目需要,在搞android.开发环境:android studio
越用越发现这软件不错,虽然我还不太会使用这软件
软件的使用教程网上一堆,记录一下左右滑动切换界面,
需要切换的几个界面如下:
思路是这样的:四个xml布局文件,四个activity,一个布局文件对应一个activity,
当然点击按钮也是可以切换的,四个按钮都是差不多的,红色部分一替换就好,这个代码可以参考如下:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate called.");
setContentView(R.layout.layout);
Button btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(xxx.this,***.class);
想要实现左右滑动就切换界面,activity 需要实现两个接口
implements View.OnTouchListener,GestureDetector.OnGestureListener
重写里面的方法。四个activity 都是一样的,我贴出其中一个ResultActivity
package android.cl.com.myapplication2;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;
import java.util.ArrayList;
import java.util.List;
public class ResultActivity extends AppCompatActivity implements View.OnTouchListener,GestureDetector.OnGestureListener {
private RelativeLayout rl;
private GestureDetector gd;
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_result);
rl=(RelativeLayout)findViewById(R.id.resultRelative);
rl.setOnTouchListener(this);
rl.setLongClickable(true); //很重要
gd=new GestureDetector((GestureDetector.OnGestureListener)this);
//我们设置一个List集合,然后向里边添加几条数据
List ls = new ArrayList();
ls.add("结果1");
ls.add("结果2");
ls.add("结果3");
//获取xml文件中listView控件
listView = (ListView)findViewById(R.id.resultListView);
//然后为listView控件调用setAdapter方法,让数据显示在界面上。
listView.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,ls));
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public void onShowPress(MotionEvent e) {
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return false;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
final int FLING_MIN_DISTANCE=100;
final int FLING_MIN_VELOCITY=200;
//左
if(e1.getX() - e2.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY){
Intent intent = new Intent(ResultActivity.this,MessageActivity.class);
startActivity(intent);
}
//右
if(e1.getX() - e2.getX() < FLING_MIN_DISTANCE && Math.abs(velocityX) < FLING_MIN_VELOCITY){
Intent intent = new Intent(ResultActivity.this,TestActivity.class);
startActivity(intent);
}
return false;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return gd.onTouchEvent(event);
}
}
SimpleAdapter
可以显示多种元素,比如图片啦等等,看一下代码,其他的重写代码参考上面的
public class MessageActivity extends AppCompatActivity implements View.OnTouchListener,GestureDetector.OnGestureListener {
private RelativeLayout rl;
private GestureDetector gd;
private String[] names = new String[]
{ "叮当猫", "海贼王", "樱桃小丸子", "熊猫"};
private String[] descs = new String[]
{ "可爱的小孩", "One pease"
, "一个Q女性", "国宝动物"};
//这是三张图片的id的集合
private int[] imageIds = new int[]
{ R.drawable.dingdangmao , R.drawable.haizeiwang
, R.drawable.yingtaoxiaowanzi, R.drawable.xiongmao};
private ListView messagelistview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_message);
rl=(RelativeLayout)findViewById(R.id.messageRelative);
rl.setOnTouchListener(this);
rl.setLongClickable(true); //很重要
gd=new GestureDetector((GestureDetector.OnGestureListener)this);
ArrayList
写了一个Item的点击监听事件,为了以后可以显示其他的界面,这里只是输出信息
使用到了一个messagelistview布局文件,意思就是把messagelistview作为一条list记录显示在listView里