ListView和GridView切换

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;

}

}

猜你喜欢

转载自blog.csdn.net/weixin_42791904/article/details/82595844