@ZSCDumin
2019-07-10T11:41:03.000000Z
字数 7110
阅读 651
<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content" /></RelativeLayout>
绑定控件(findViewById)
给控件取值或者赋值(setText,getText)
按钮点击事件
button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//此处写处理代码}});
子线程更新UI出错,百度一下看看能不能自己解决
Intent intent =new Intent(当前Activity.this,目标Activity.class);
startActivity(intent);
带数据跳转需要用到:Bundle
1、自定义适配器(里面要加载每一个列表子项的布局文件:item.xml)
2、给适配器加载数据
3、给ListView设置适配器
参考代码:
MaActivity.java
package com.zscdumin.test;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ListView;import butterknife.Bind;import butterknife.ButterKnife;public class MainActivity extends AppCompatActivity {@Bind(R.id.listView)ListView listView;private int[] images = new int[1000];private String[] titles = new String[1000];@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButterKnife.bind(this);for (int i = 0; i < 1000; i++) {images[i] = R.drawable.icon;titles[i] = "item" + i;}MyAdapter myAdapter = new MyAdapter(this, R.layout.list_item, images, titles);listView.setAdapter(myAdapter);}}
MyAdapter.java
package com.zscdumin.test;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Adapter;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class MyAdapter extends BaseAdapter {private int[] images;private String[] titles;private Context context;private int resource;public MyAdapter(Context context, int resource, int[] images, String[] titles) {this.images = images;this.resource = resource;this.titles = titles;this.context = context;}@Overridepublic int getCount() {return images.length;}@Overridepublic Object getItem(int i) {return images[i];}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {ViewHolder viewHolder;if (view == null) {viewHolder = new ViewHolder();view = LayoutInflater.from(context).inflate(resource, null);viewHolder.image = view.findViewById(R.id.imageView);viewHolder.title = view.findViewById(R.id.textView);view.setTag(viewHolder);} else {viewHolder = (ViewHolder) view.getTag();}viewHolder.image.setImageResource(images[i]);viewHolder.title.setText(titles[i]);return view;}final class ViewHolder {ImageView image;TextView title;}}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#d8e0e8"android:orientation="vertical"><ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1" /></LinearLayout>
list_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#d8e0e8"android:orientation="horizontal"><ImageViewandroid:id="@+id/imageView"android:layout_width="50dp"android:layout_height="50dp"android:src="@mipmap/ic_launcher" /><TextViewandroid:id="@+id/textView"android:layout_width="100dp"android:layout_height="50dp"android:layout_marginLeft="50dp"android:gravity="center"android:text="你好"android:textSize="20dp" /></LinearLayout>
1、自定义适配器(里面要加载每一个列表子项的布局文件:item.xml)
2、给适配器加载数据
3、给ListView设置适配器
参考代码:
MainActivity.java
package com.zscdumin.test;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import java.util.ArrayList;import java.util.List;import butterknife.Bind;import butterknife.ButterKnife;public class MainActivity extends AppCompatActivity {@Bind(R.id.recycleView)RecyclerView recycleView;MyAdpter adpter;List<String> list = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButterKnife.bind(this);for (int i = 0; i < 10000; i++) {list.add("item" + i);}adpter = new MyAdpter(this, list);LinearLayoutManager layoutmanager = new LinearLayoutManager(this);layoutmanager.setOrientation(LinearLayoutManager.VERTICAL);recycleView.setLayoutManager(layoutmanager);recycleView.setAdapter(adpter);}}
MyAdapter.java
package com.zscdumin.test;import android.content.Context;import android.support.annotation.NonNull;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import java.util.List;public class MyAdpter extends RecyclerView.Adapter<MyAdpter.MyViewHolder> {Context context;List<String> list;public MyAdpter(Context context, List<String> list) {this.context = context;this.list = list;}@NonNull@Overridepublic MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);MyViewHolder viewHolder = new MyViewHolder(view);return viewHolder;}@Overridepublic void onBindViewHolder(@NonNull MyViewHolder holder, int position) {String s = list.get(position);holder.textView.setText(s);holder.imageView.setImageResource(R.mipmap.ic_launcher);holder.textView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Toast.makeText(context, "TextView", 1);}});holder.itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Toast.makeText(context, "Item", 1);}});}@Overridepublic int getItemCount() {return list.size();}static class MyViewHolder extends RecyclerView.ViewHolder {ImageView imageView;TextView textView;public MyViewHolder(View itemView) {super(itemView);imageView = itemView.findViewById(R.id.imageView);textView = itemView.findViewById(R.id.textView);}}}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><android.support.v7.widget.RecyclerViewandroid:id="@+id/recycleView"android:layout_width="match_parent"android:layout_height="match_parent"></android.support.v7.widget.RecyclerView></LinearLayout>
list_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:id="@+id/imageView"android:layout_width="50dp"android:layout_height="50dp"android:src="@mipmap/ic_launcher" /><TextViewandroid:id="@+id/textView"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center"android:text="你好"android:textSize="20dp" /></LinearLayout>