1: 编写我们布局文件的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
java的文件:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
// todo------------> 成员变量
private ListView listview;
// todo 创建我们的数组
private int[] img = new int[]{
// 在我们的这个位置的话是我们的先关的适配器
R.mipmap.one, R.mipmap.two, R.mipmap.three,
};
private String[] str = new String[]{
"按钮1","按钮2","按钮3"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
}
private void initData() {
// todo -----------> 找到我们的id
listview = (ListView) findViewById(R.id.listview);
// todo -------------》 在我们的这个位置的话就是创建我们的相关的适配器
MyAdapter myAdapter = new MyAdapter();
listview.setAdapter(myAdapter);
setOnClick(new OnClick() {
@Override
public void itemOnClick(int pos) {
// todo ----------> 点击事件
Intent intent;
switch (pos){
case 0:
intent = new Intent(MainActivity.this, SecondActivity.class);
Toast.makeText(MainActivity.this, "跳转成功", Toast.LENGTH_SHORT).show();
break;
case 1:
intent = new Intent(MainActivity.this, SecondActivity.class);
Toast.makeText(MainActivity.this, "跳转成功", Toast.LENGTH_SHORT).show();
break;
case 2:
intent = new Intent(MainActivity.this, SecondActivity.class);
Toast.makeText(MainActivity.this, "跳转成功", Toast.LENGTH_SHORT).show();
break;
default:
throw new IllegalStateException("Unexpected value: " + pos);
}
// todo ------------> 开启页面跳转
startActivity(intent);
}
});
}
//todo -----------> 这个是我们的的适配器继承我们的baseadapter
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return img.length;
}
@Override
public Object getItem(int position) {
return img[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView == null){
convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_model,null);
viewHolder = new ViewHolder();
viewHolder.imageModel = (ImageView) convertView.findViewById(R.id.image_model);
viewHolder.text = (Button) convertView.findViewById(R.id.text);
convertView.setTag(viewHolder);
}else {
viewHolder = (ViewHolder) convertView.getTag();
}
// todo ----------> 数据填充
viewHolder.imageModel.setBackgroundResource(img[position]);
viewHolder.text.setText(str[position]);
viewHolder.text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onClick.itemOnClick(position);
}
});
return convertView;
}
}
class ViewHolder{
ImageView imageModel;
Button text;
}
// todo ------------》创建我们的接口
public interface OnClick{
void itemOnClick(int pos);
}
private OnClick onClick;
public void setOnClick(OnClick onClick) {
this.onClick = onClick;
}
}
第二个跳转页面的文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical"
tools:context=".SecondActivity">
<TextView
android:textColor="@color/colorPrimaryDark"
android:textSize="50px"
android:textStyle="italic"
android:gravity="center"
android:text="我是跳转的页面"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
java文件及代码:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
}
布局的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image_model"
android:layout_width="200px"
android:layout_height="200px"
android:layout_margin="10dp"
android:scaleType="fitXY"
android:src="@mipmap/one">
</ImageView>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/text"
android:text="我是一个按钮"
android:layout_margin="20dp"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>