main.xml:
<?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" android:paddingLeft="10dp" android:paddingRight="10dp" android:orientation="vertical" tools:context="com.example.zengyuxin1508b1014.Activity.MainActivity"> <EditText android:id="@+id/phone" android:hint="输入手机号" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/pwd" android:hint="输入密码" android:layout_marginTop="20dp" android:layout_width="match_parent" android:layout_height="wrap_content" /> <RelativeLayout android:layout_marginTop="20dp" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/bt_login" android:text="登录" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/bt_zhuce" android:text="注册" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> </LinearLayout>
my_main.xml:
<?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" android:orientation="vertical" tools:context="com.example.zengyuxin1508b1014.Activity.MyMainActivity"> <TextView android:gravity="center" android:textSize="20sp" android:text="个人信息" android:layout_width="match_parent" android:layout_height="50dp" /> <View android:background="#33000000" android:layout_width="match_parent" android:layout_height="1dp"></View> <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal"> <TextView android:textSize="16sp" android:paddingLeft="15dp" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="头像"/> <ImageView android:layout_centerVertical="true" android:layout_alignParentRight="true" android:paddingRight="15dp" android:src="@mipmap/ic_launcher_round" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> <View android:background="#33000000" android:layout_width="match_parent" android:layout_height="1dp"></View> <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal"> <TextView android:textSize="16sp" android:paddingLeft="15dp" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用户名"/> <TextView android:textSize="15sp" android:id="@+id/user" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:paddingRight="15dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> <View android:background="#33000000" android:layout_width="match_parent" android:layout_height="1dp"></View> <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal"> <TextView android:textSize="16sp" android:paddingLeft="15dp" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="昵称"/> <TextView android:textSize="15sp" android:id="@+id/name" android:text="kson" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:paddingRight="15dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> <View android:background="#33000000" android:layout_width="match_parent" android:layout_height="1dp"></View> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/finish" android:text="退出登录" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/shopping" android:text="跳转到商品搜索页" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> </LinearLayout>
register.xml:
<?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" android:paddingRight="10dp" android:paddingLeft="10dp" android:orientation="vertical" tools:context="com.example.zengyuxin1508b1014.Activity.RegisterActivity"> <EditText android:id="@+id/re_phone" android:hint="输入手机号" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/re_pwd" android:hint="输入密码" android:layout_marginTop="20dp" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:layout_marginTop="20dp" android:id="@+id/register" android:text="注册" android:layout_gravity="center_horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
shopping.xml:
<?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" android:orientation="vertical" tools:context="com.example.zengyuxin1508b1014.Activity.ShoppingActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="60dp"> <EditText android:id="@+id/et" android:hint="输入搜索关键词" android:textColorHint="#fff" android:layout_gravity="center" android:layout_width="300dp" android:layout_height="50dp" /> <TextView android:id="@+id/find" android:text="查找" android:textSize="20sp" android:paddingRight="60dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/change" android:text="切换" android:textSize="20sp" android:paddingRight="5dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> <android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v7.widget.RecyclerView> </LinearLayout>
item1.xml:
item2.xml:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="80dp"> <ImageView android:layout_gravity="center" android:id="@+id/item1_iv" android:layout_width="80dp" android:layout_height="50dp" /> <LinearLayout android:orientation="vertical" android:layout_marginLeft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/item1_title" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/item1_price" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout>
<?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="vertical"> <ImageView android:id="@+id/item2_iv" android:layout_width="80dp" android:layout_height="50dp" android:layout_gravity="center" /> <TextView android:id="@+id/item2_title" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/item2_price" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
mainActivity:
package com.example.zengyuxin1508b1014.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.example.zengyuxin1508b1014.R; import com.example.zengyuxin1508b1014.bean.BaseBean; import com.example.zengyuxin1508b1014.bean.LoginBean; import com.example.zengyuxin1508b1014.net.Api; import com.example.zengyuxin1508b1014.net.OnNetListener; import java.io.IOException; import java.util.HashMap; public class MainActivity extends BaseActivity implements View.OnClickListener { private Button bt_zhuce; private EditText phone; private EditText pwd; private Button bt_login; private HashMap<String,String> params = new HashMap<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { phone = (EditText) findViewById(R.id.phone); pwd = (EditText) findViewById(R.id.pwd); bt_zhuce = (Button) findViewById(R.id.bt_zhuce); bt_zhuce.setOnClickListener(this); bt_login = (Button) findViewById(R.id.bt_login); bt_login.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.bt_zhuce: Intent intent = new Intent(MainActivity.this,RegisterActivity.class); startActivity(intent); break; case R.id.bt_login: String mobile = phone.getText().toString().trim(); String password = pwd.getText().toString().trim(); params.put("mobile",mobile); params.put("password",password); httpUtil.doPost(Api.LOGIN, params, LoginBean.class, new OnNetListener() { @Override public void onSuccess(BaseBean baseBean) throws IOException { LoginBean loginBean = (LoginBean) baseBean; int uid = loginBean.getData().getUid(); Intent intent = new Intent(MainActivity.this,MyMainActivity.class); intent.putExtra("UID",uid); startActivity(intent); MainActivity.this.finish(); } @Override public void onError(IOException e) { Toast.makeText(MainActivity.this,"登录失败!",Toast.LENGTH_SHORT).show(); } }); break; } } }MymainAcitvity:
package com.example.zengyuxin1508b1014.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.example.zengyuxin1508b1014.R; import com.example.zengyuxin1508b1014.bean.BaseBean; import com.example.zengyuxin1508b1014.bean.MyMainBean; import com.example.zengyuxin1508b1014.net.OnNetListener; import java.io.IOException; import java.util.HashMap; public class MyMainActivity extends BaseActivity implements View.OnClickListener { private HashMap<String,String> params = new HashMap<>(); private TextView user; private TextView name; private Button finish; private Button shopping; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_main); initView(); Intent intent = getIntent(); int uid = intent.getIntExtra("UID",0); httpUtil.doGet("http://127.0.0.1/user/getUserInfo?uid="+uid,null,null, MyMainBean.class, new OnNetListener() { @Override public void onSuccess(BaseBean baseBean) throws IOException { MyMainBean myMainBean = (MyMainBean) baseBean; String username = myMainBean.getData().getUsername(); String password = myMainBean.getData().getPassword(); user.setText(username); name.setText(password); Toast.makeText(MyMainActivity.this,"请求成功",Toast.LENGTH_SHORT).show(); } @Override public void onError(IOException e) { Toast.makeText(MyMainActivity.this,"请求失败",Toast.LENGTH_SHORT).show(); } }); } private void initView() { user = (TextView) findViewById(R.id.user); name = (TextView) findViewById(R.id.name); finish = (Button) findViewById(R.id.finish); shopping = (Button) findViewById(R.id.shopping); finish.setOnClickListener(this); shopping.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.finish: MyMainActivity.this.finish(); break; case R.id.shopping: Intent intent = new Intent(MyMainActivity.this,ShoppingActivity.class); startActivity(intent); break; } } }
regsterAcitvity:
package com.example.zengyuxin1508b1014.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.example.zengyuxin1508b1014.R; import com.example.zengyuxin1508b1014.bean.BaseBean; import com.example.zengyuxin1508b1014.bean.RegisterBean; import com.example.zengyuxin1508b1014.net.Api; import com.example.zengyuxin1508b1014.net.OnNetListener; import java.io.IOException; import java.util.HashMap; public class RegisterActivity extends BaseActivity implements View.OnClickListener { private Button register; private EditText re_phone; private EditText re_pwd; private HashMap<String,String> params = new HashMap<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); initView(); } private void initView() { re_phone = (EditText) findViewById(R.id.re_phone); re_pwd = (EditText) findViewById(R.id.re_pwd); register = (Button) findViewById(R.id.register); register.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.register: String mobile = re_phone.getText().toString().trim(); String password = re_pwd.getText().toString().trim(); params.put("mobile",mobile); params.put("password",password); httpUtil.doPost(Api.REGISTER, params, RegisterBean.class, new OnNetListener() { @Override public void onSuccess(BaseBean baseBean) throws IOException { Toast.makeText(RegisterActivity.this,"注册成功!",Toast.LENGTH_SHORT).show(); RegisterActivity.this.finish(); } @Override public void onError(IOException e) { Toast.makeText(RegisterActivity.this,"注册失败!",Toast.LENGTH_SHORT).show(); } }); break; } } }
shoppingActivity:
package com.example.zengyuxin1508b1014.Activity; import android.os.Bundle; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.EditText; import android.widget.TextView; import com.example.zengyuxin1508b1014.R; import com.example.zengyuxin1508b1014.adapter.MyAdapter; import com.example.zengyuxin1508b1014.bean.BaseBean; import com.example.zengyuxin1508b1014.bean.ShoppingBean; import com.example.zengyuxin1508b1014.net.OnNetListener; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class ShoppingActivity extends BaseActivity implements View.OnClickListener { private List<ShoppingBean.DataBean> list = new ArrayList<>(); private EditText et; private TextView change; private RecyclerView rv; private boolean flag; private TextView find; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shopping); initView(); } private void initView() { et = (EditText) findViewById(R.id.et); change = (TextView) findViewById(R.id.change); rv = (RecyclerView) findViewById(R.id.rv); change.setOnClickListener(this); find = (TextView) findViewById(R.id.find); find.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.change: if(!flag){ show(false); flag=true; }else{ show(true); flag=false; } break; case R.id.find: String s = et.getText().toString().trim(); httpUtil.doGet("http://127.0.0.1/product/searchProducts?keywords=" + s + "&page=1", null, null, ShoppingBean.class, new OnNetListener() { @Override public void onSuccess(BaseBean baseBean) throws IOException { ShoppingBean shoppingBean = (ShoppingBean) baseBean; list = shoppingBean.getData(); show(true); } @Override public void onError(IOException e) { } }); break; } } public void show(boolean flag){ rv.setLayoutManager(flag ? new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false) : new GridLayoutManager(this,2)); MyAdapter adapter = new MyAdapter(this,list); rv.setAdapter(adapter); } }
MyAdapter:
package com.example.zengyuxin1508b1014.adapter; import android.content.Context; 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 com.example.zengyuxin1508b1014.R; import com.example.zengyuxin1508b1014.bean.ShoppingBean; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.List; /** * Created by Administrator on 2017/10/14. */ public class MyAdapter extends RecyclerView.Adapter{ private Context context; private List<ShoppingBean.DataBean> list; private static final int TYPE1 = 0; private static final int TYPE2 = 1; public MyAdapter(Context context, List<ShoppingBean.DataBean> list) { this.context = context; this.list = list; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { RecyclerView.ViewHolder holder = null; if(viewType == TYPE1){ View view1 = LayoutInflater.from(context).inflate(R.layout.item1, parent, false); holder = new Type1ViewHolder(view1); }else{ View view2 = LayoutInflater.from(context).inflate(R.layout.item2, parent, false); holder = new Type2ViewHolder(view2); } return holder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if(holder instanceof Type1ViewHolder){ ShoppingBean.DataBean dataBean = list.get(position); Type1ViewHolder type1ViewHolder = (Type1ViewHolder) holder; type1ViewHolder.item1_price.setText(dataBean.getPrice()+""); type1ViewHolder.item1_title.setText(dataBean.getTitle()); ImageLoader.getInstance().displayImage(dataBean.getImages(),type1ViewHolder.item1_iv); }else{ ShoppingBean.DataBean dataBean = list.get(position); Type2ViewHolder type2ViewHolder = (Type2ViewHolder) holder; type2ViewHolder.item2_price.setText(dataBean.getPrice()+""); type2ViewHolder.item2_title.setText(dataBean.getTitle()); ImageLoader.getInstance().displayImage(dataBean.getImages(),type2ViewHolder.item2_iv); } } @Override public int getItemViewType(int position) { return position % 2 == 0? TYPE1 : TYPE2; } @Override public int getItemCount() { return list.size(); } private class Type1ViewHolder extends RecyclerView.ViewHolder{ private final ImageView item1_iv; private final TextView item1_title; private final TextView item1_price; public Type1ViewHolder(View itemView) { super(itemView); item1_iv = itemView.findViewById(R.id.item1_iv); item1_title = itemView.findViewById(R.id.item1_title); item1_price = itemView.findViewById(R.id.item1_price); } } private class Type2ViewHolder extends RecyclerView.ViewHolder{ private final ImageView item2_iv; private final TextView item2_title; private final TextView item2_price; public Type2ViewHolder(View itemView) { super(itemView); item2_iv = itemView.findViewById(R.id.item2_iv); item2_title = itemView.findViewById(R.id.item2_title); item2_price = itemView.findViewById(R.id.item2_price); } } }