package com.example.day_android_05_2;
import java.util.ArrayList;
import com.example.day_android_05_2.adapter.GLAdapter;
import com.example.day_android_05_2.bean.User;
import android.R.bool;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private GridView gridView;
private ListView listView;
private boolean isShow = false;
private ArrayList<User> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 1.找控件
gridView = (GridView) findViewById(R.id.gridview);
listView = (ListView) findViewById(R.id.listview);
findViewById(R.id.button1).setOnClickListener(this);
// 2.创造数据
list = new ArrayList<User>();
for (int i = 0; i < 30; i++) {
list.add(new User(R.drawable.gua1, "乖巧宝宝", 500000.0));
}
// 3.设置适配器
GLAdapter mGadapter = new GLAdapter(MainActivity.this, list,
R.layout.g_item);
GLAdapter mLadapter = new GLAdapter(MainActivity.this, list,
R.layout.l_item);
gridView.setAdapter(mGadapter);
listView.setAdapter(mLadapter);
//条目点击事件
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(MainActivity.this, list.get(position).toString(), 0).show();
}
});
//条目长按事件
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
startActivity(new Intent(MainActivity.this,TwoActivity.class));
//这里要写成true否则,点击和长按会有冲突
return true;
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
// 最后一步:判断 切换那个控件
if (isShow) {
//如果是true显示 listView 隐藏gridView
listView.setVisibility(View.VISIBLE);
gridView.setVisibility(View.GONE);
//注意一点:isShow要变换 否则 没办法切换效果
isShow = false;
} else {
//如果是false显示 gridView 隐藏listView
gridView.setVisibility(View.VISIBLE);
listView.setVisibility(View.GONE);
isShow = true;
}
break;
}
}
}
package com.example.day_android_05_2.adapter;
import java.util.ArrayList;
import com.example.day_android_05_2.R;
import com.example.day_android_05_2.bean.User;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
//4.继承 实现方法
public class GLAdapter extends BaseAdapter {
//5.写必要属性
private Context mContext;//上下文
private ArrayList list;//数据
private int mID;//页面
//6.有参
public GLAdapter(Context mContext, ArrayList list, int mID) {
super();
this.mContext = mContext;
this.list = list;
this.mID = mID;
}
//7基本配置
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
//8 设置视图
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//9.优化
ViewHolder holder = null;
if (convertView == null) {
//10 判断显示的页面是那个一个
if (mID == R.layout.g_item) {
convertView = View.inflate(mContext, R.layout.g_item, null);
holder = new ViewHolder();
holder.imageView = (ImageView) convertView
.findViewById(R.id.iamge_G);
holder.name = (TextView) convertView.findViewById(R.id.name_G);
holder.price = (TextView) convertView
.findViewById(R.id.price_G);
} else {
convertView = View.inflate(mContext, R.layout.l_item, null);
holder = new ViewHolder();
holder.imageView = (ImageView) convertView
.findViewById(R.id.iamge_L);
holder.name = (TextView) convertView.findViewById(R.id.name_L);
holder.price = (TextView) convertView
.findViewById(R.id.price_L);
}
//存
convertView.setTag(holder);
} else {
//取
holder = (ViewHolder) convertView.getTag();
}
//设置数据
User user = list.get(position);
holder.imageView.setImageResource(user.getIamge());
holder.name.setText(user.getName());
holder.price.setText("" + user.getPrice());
return convertView;
}
// 内部
class ViewHolder {
ImageView imageView;
TextView name;
TextView price;
}
}