补充一下我用的开发api版本是4.0.3,如有愿意进一步了解讨论的加我qq 969298114
解决方案 »
- android 平板分辨率的问题
- 求一个android的JNI的libX264编码源文件
- 初学android~listview 问题
- 如果把切换到后台的程序,切换到前台?
- xml中定义了android:id="@android:id/list" ,在程序中如何如何调用呢?
- 抽象类继承SurfaceView不行,为什么?
- 为什么我写的android音乐播放器,会意外停止????
- 求帮忙,eclipse显示空格的问题
- 关于androidpn项目在android4.0中出现的问题
- android 2个项目都存在同样action名的service 当启动时只能启动一个
- 启动一个APK程序之后,想禁止掉返回launcher界面,这个怎么做啊,求各位帮助!
- android客户端请求不到服务器数据
import java.util.List;import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;/**
* 使用列表缓存过去的Item
*
* @author hellogv
*
*/
public class CacheAdapter extends BaseAdapter { private Context mContext;
private ArrayList<Item> mItems = new ArrayList<Item>();
private LayoutInflater inflater;
private Thread th;
public static ProgressDialog dialog;
private int id; public CacheAdapter(Context c, ArrayList<Item> mItems) {
mContext = c;
this.mItems = mItems;
inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
} public void addItem(String itemTitle, String name, int type) {
mItems.add(new Item(itemTitle, name, type));
} public int getCount() {
return mItems.size();
} public Item getItem(int position) {
return mItems.get(position);
} public long getItemId(int position) {
return position;
} List<Integer> lstPosition = new ArrayList<Integer>();
List<View> lstView = new ArrayList<View>(); List<Integer> lstTimes = new ArrayList<Integer>(); public View getView(int position, View convertView, ViewGroup parent) { if (lstPosition.contains(position) == false) {
if (lstPosition.size() > 75)// 这里设置缓存的Item数量
{
lstPosition.remove(0);// 删除第一项
lstView.remove(0);// 删除第一项
}
convertView = inflater.inflate(R.layout.gv_item, null);
final RelativeLayout rl = (RelativeLayout) convertView
.findViewById(R.id.rl_zong);
final TextView text = (TextView) convertView
.findViewById(R.id.tv_name);
final Button btn_kaitai = (Button) convertView
.findViewById(R.id.btn_kaitai);
btn_kaitai.setTag(position);
final Button btn_close = (Button) convertView
.findViewById(R.id.btn_close);
final Button btn_pingjia = (Button) convertView
.findViewById(R.id.btn_pingjia);
final Button btn_service = (Button) convertView
.findViewById(R.id.btn_service);
switch (mItems.get(position).getType()) {
case 0:// 开台
btn_kaitai.setVisibility(View.GONE);
btn_close.setVisibility(View.VISIBLE);
btn_pingjia.setVisibility(View.GONE);
btn_service.setVisibility(View.VISIBLE);
text.setText("美发师:" + mItems.get(position).getName());
rl.setBackgroundColor(Color.GREEN);
break;
case 1:// 未开台
btn_kaitai.setVisibility(View.VISIBLE);
btn_close.setVisibility(View.GONE);
btn_pingjia.setVisibility(View.INVISIBLE);
btn_service.setVisibility(View.GONE);
text.setText(mItems.get(position).getItemTitle());
rl.setBackgroundColor(Color.WHITE);
break;
case 2:// 等待评价状态
btn_kaitai.setVisibility(View.GONE);
btn_close.setVisibility(View.VISIBLE);
btn_service.setVisibility(View.GONE);
btn_pingjia.setVisibility(View.VISIBLE);
text.setText(mItems.get(position).getName());
rl.setBackgroundColor(Color.GREEN);
break; default:
break;
} btn_kaitai.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
Toast.makeText(mContext, "开台" + btn_kaitai.getTag(), Toast.LENGTH_SHORT).show();
}
});
btn_pingjia.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
}
});
btn_service.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
}
});
btn_close.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
}
}); lstPosition.add(position);// 添加最新项
lstView.add(convertView);// 添加最新项
} else {
convertView = lstView.get(lstPosition.indexOf(position));
final RelativeLayout rl = (RelativeLayout) convertView
.findViewById(R.id.rl_zong);
final TextView text = (TextView) convertView
.findViewById(R.id.tv_name);
final Button btn_kaitai = (Button) convertView
.findViewById(R.id.btn_kaitai);
// btn_kaitai.setTag(position);
final Button btn_close = (Button) convertView
.findViewById(R.id.btn_close);
final Button btn_pingjia = (Button) convertView
.findViewById(R.id.btn_pingjia);
final Button btn_service = (Button) convertView
.findViewById(R.id.btn_service);
switch (mItems.get(position).getType()) {
case 0:// 开台
btn_kaitai.setVisibility(View.GONE);
btn_close.setVisibility(View.VISIBLE);
btn_pingjia.setVisibility(View.GONE);
btn_service.setVisibility(View.VISIBLE);
text.setText("美发师:" + mItems.get(position).getName());
rl.setBackgroundColor(Color.GREEN);
break;
case 1:// 未开台
btn_kaitai.setVisibility(View.VISIBLE);
btn_close.setVisibility(View.GONE);
btn_pingjia.setVisibility(View.INVISIBLE);
btn_service.setVisibility(View.GONE);
text.setText(mItems.get(position).getItemTitle());
rl.setBackgroundColor(Color.WHITE);
break;
case 2:// 等待评价状态
btn_kaitai.setVisibility(View.GONE);
btn_close.setVisibility(View.VISIBLE);
btn_service.setVisibility(View.GONE);
btn_pingjia.setVisibility(View.VISIBLE);
text.setText(mItems.get(position).getName());
rl.setBackgroundColor(Color.GREEN);
break; default:
break;
}
btn_kaitai.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(mContext, "开台" + btn_kaitai.getTag(), Toast.LENGTH_SHORT).show();
}
});
btn_pingjia.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
btn_service.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
btn_close.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
new AlertDialog.Builder(mContext)
.setTitle("退出")
.setMessage("你确定强制关闭吗?")
.setCancelable(false)
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
}
}).setNegativeButton("取消", null).show();
}
});
} return convertView;
}
}
代码是参照网上一位大侠写的,我写的也比较啰嗦请多指教
哥们,这个问题你解决了没。。我也碰到了,不知道咋办。
android gridview的item中第一个button点击没反应,点击其他的item上的button后才执行第一个item的button的事件
为什么btn_kaitai.setOnClickListener要注册两次,会不会是btn_kaitai.getTag()时没有获取到值?
,将其全部注释掉即可。