在ListVIEW上方和下方添加textview和button控件没有显示

<?xml version="1.0" encoding="utf-8"?>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="@string/number"/>

android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="@string/force"/>

android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="@string/angle"/>

<!-- 添加一个ListView控件 -->
<ListView
android:id="@+id/lv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/> 

android:id="@+id/bt5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/bt5"
/>

5个回答

朋友就不能好好给全代码吗,连内外层的布局都不明白,这里没法帮你

看你的代码 很费劲啊

朋友,能把你的代码理清楚一点吗。。。。。

<?xml version="1.0" encoding="utf-8"?> android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">

android:layout_width="100dp"
android:layout_height="wrap_content"
android:textColor="#000000"
android:text="@string/number"
android:layout_alignParentTop="true"/>

android:layout_width="100dp"
android:layout_height="wrap_content"
android:textColor="#000000"
android:text="@string/force"
android:layout_alignParentTop="true"/>

android:layout_width="100dp"
android:layout_height="wrap_content"
android:textColor="#000000"
android:text="@string/angle"
android:layout_alignParentTop="true"/>

<ListView
android:id="@+id/lv"
android:layout_width="fill_parent"
android:layout_height="wrap_content" /> 

android:id="@+id/bt5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/bt5"
/>

首先,看这段代码好费劲。。。

上面的textview不显示,是你的水平的linearLayout的宽度设置的是wrapcontent,加上你textview设置的weight属性有冲突了,肯定显示不出来。你把水平的linearLayout的宽度设置为matchparent就能显示,或者设置一个固定的值。

接下来,下面的button没有显示,原因不太清楚,可能是你listview数据多了,把button挤到屏幕外,而且你又不支持滑动,所以没显示。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
自定义Dialog,布局里面有个ListView 和一个Textview 。。。。。

自定义Dialog,布局里面有个ListView 和一个Textview,现在问题是对textview进行点击监听能够实现相应功能,而对listview进行Onitemclick监听没响应,在适配器那边item里面的布局有个textview和button,而且我都已经对这两个设置了focusable为false,在它们的layout里面我也加了这句android:descendantFocusability="blocksDescendants",也在设配器这边重写了isEnable和allItemIsEnable,甚至在dialog这边的布局我都把其它的控件(除了listview)的focusable设置为false,然而这样我的Onitemclick还是没响应,有哪位大神知道怎么回事吗?

Android Studio 中Button控件的问题

目前在参考《第一行代码Android 第二版》 看到书中 第2.2.4节 在活动中使用Toast 其中我在写码Button的时候我的AS会报错 ![图片说明](https://img-ask.csdn.net/upload/201910/13/1570978836_981403.png) 附MainActivity.kt的代码 ``` package com.example.myapplication import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Button import android.widget.Toast class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState); setContentView(R.layout.first_layout); Button button_1 = (Button) findViewById(R.id.button_1); button1 .setOnClickListener(new View.onClickListener) { @Override public void onClick(View v){ Toast.makeText(MainActivity.this,"You Clcke Button 1",Toast.LENGTH_SHORT).show(); } }; } } ``` 谢谢@王能指出代码没贴出来 此上为问题代码![图片说明](https://img-ask.csdn.net/upload/201910/15/1571136452_474511.png)

关于在listview中隐藏item的某控件

我自定义了一个listview 现在想隐藏其中每个item的某个控件 adapter代码如下 ``` public abstract class MyAdapter<T> extends BaseAdapter { private ArrayList<T> mData; private int mLayoutRes; //布局id public MyAdapter() { } public MyAdapter(ArrayList<T> mData, int mLayoutRes) { this.mData = mData; this.mLayoutRes = mLayoutRes; } @Override public int getCount() { return mData != null ? mData.size() : 0; } @Override public T getItem(int position) { return mData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = ViewHolder.bind(parent.getContext(), convertView, parent, mLayoutRes , position); bindView(holder, getItem(position)); return holder.getItemView(); } public abstract void bindView(ViewHolder holder, T obj); //添加一个元素 public void add(T data) { if (mData == null) { mData = new ArrayList<T>(); } mData.add(data); notifyDataSetChanged(); } //往特定位置,添加一个元素 public void add(int position, T data) { if (mData == null) { mData = new ArrayList<T>(); } mData.add(position, data); notifyDataSetChanged(); } public void remove(T data) { if (mData != null) { mData.remove(data); } notifyDataSetChanged(); } public void remove(int position) { if (mData != null) { mData.remove(position); } notifyDataSetChanged(); } public void clear() { if (mData != null) { mData.clear(); } notifyDataSetChanged(); } public static class ViewHolder { private SparseArray<View> mViews; //存储ListView 的 item中的View private View item; //存放convertView private int position; //游标 private Context context; //Context上下文 //构造方法,完成相关初始化 private ViewHolder(Context context, ViewGroup parent, int layoutRes) { mViews = new SparseArray<View>(); this.context = context; View convertView = LayoutInflater.from(context).inflate(layoutRes, parent, false); convertView.setTag(this); item = convertView; } //绑定ViewHolder与item public static ViewHolder bind(Context context, View convertView, ViewGroup parent, int layoutRes, int position) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(context, parent, layoutRes); } else { holder = (ViewHolder) convertView.getTag(); holder.item = convertView; } holder.position = position; return holder; } @SuppressWarnings("unchecked") public <T extends View> T getView(int id) { T t = (T) mViews.get(id); if (t == null) { t = (T) item.findViewById(id); mViews.put(id, t); } return t; } /** * 获取当前条目 */ public View getItemView() { return item; } /** * 获取条目位置 */ public int getItemPosition() { return position; } /** * 设置文字 */ public ViewHolder setText(int id, CharSequence text) { View view = getView(id); if (view instanceof TextView) { ((TextView) view).setText(text); } return this; } /** * 设置图片 */ public ViewHolder setImageResource(int id, int drawableRes) { View view = getView(id); if (view instanceof ImageView) { ((ImageView) view).setImageResource(drawableRes); } else { view.setBackgroundResource(drawableRes); } return this; } /** * 设置点击监听 */ public ViewHolder setOnClickListener(int id, View.OnClickListener listener) { getView(id).setOnClickListener(listener); return this; } /** * 设置可见 */ public ViewHolder setVisibility(int id, int visible) { getView(id).setVisibility(visible); return this; } /** * 设置标签 */ public ViewHolder setTag(int id, Object obj) { getView(id).setTag(obj); return this; } } } ``` 我在activity中设置了 ``` lv_NowOrder = (ListView) findViewById(R.id.lv_Order); mData = new ArrayList<Order_Now>(); myAdapter = new MyAdapter<Order_Now>((ArrayList<Order_Now>)mData,R.layout.item_myorder) { @Override public void bindView(final ViewHolder holder, final Order_Now obj) { LinearLayout layout = findViewById(R.id.openMap);//openMap是item的一个控件 layout.setVisibility(View.GONE); } ``` 但是并不能生效 在activity的oncreat方法中设置 ``` LinearLayout layout = findViewById(R.id.openMap); layout.setVisibility(View.GONE); ``` 报空指针异常 我该怎么隐藏这个openMap控件呢

listview每个item上的每个button的点击事件都触发了,适配器每次都找了最后一个textview

SimpleAdapter wadapter=new SimpleAdapter(getActivity(), (List<? extends Map<String, ?>>) mapList,R.layout. simplist, new String[]{"name","status","scene"},new int[]{R.id. name,R.id. statustext,R.id. cenery}){ @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView==null{ convertView=super.getView(position,convertView,parent); holder.button = (Button) convertView.findViewById(R.id. button) convertView.setTag(holder); } else { holder= (Viewholder) convertView.getTag(); } buttonevent();//按钮点击事件 return convertView; } }; 我是在创建simpleadapter时在里面复写了getview方法 然后,无论点击哪一条item上的控件按钮,每次只有最后一个item会被监听

Android开发listView中的Button点击事件被拦截

根据<http://blog.csdn.net/boylinux/article/details/8860443> 这位大神的帖子,我的代码如下,现在的问题是Listview中的Button和imageview和textview控件点击之后不会响应,而在滑动一下Listview后,之前的点击事件才会响应,导致这个问题的原因不明,但是如果不用HashMap<Integer,View>这个MAP的话,就不会有这个问题,请问大神们这是为什么呢?代码如下: public class MyTwoAdapter extends BaseAdapter { Context context; private List<FollowInfo> data; FollowInfo followInfo; Bitmap bitmap; FinalBitmap finalBitmap; HashMap<Integer,View> lmap = new HashMap<Integer,View>(); private LayoutInflater mInflater=null; public void setData(List<FollowInfo> data) { this.data = data; } public MyTwoAdapter(Context context) { this.context = context; mInflater = LayoutInflater.from(context); finalBitmap = FinalBitmap.create(context);//初始化FinalBitmap模块 finalBitmap.configLoadingImage(R.drawable.ic_launcher); } @Override public int getCount() { return data.size(); } @Override public FollowInfo getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @SuppressLint("NewApi") @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (lmap.get(position)==null) { // if (convertView == null) { convertView = mInflater.inflate(R.layout.mytwo_item, null); viewHolder = new ViewHolder(); viewHolder.user_logo = (ImageView) convertView.findViewById(R.id.user_logo); viewHolder.user_name = (TextView) convertView.findViewById(R.id.user_name); viewHolder.add_time = (TextView) convertView.findViewById(R.id.add_time); viewHolder.iv = (ImageView) convertView.findViewById(R.id.iv); viewHolder.sign1 = (TextView) convertView.findViewById(R.id.sign1); viewHolder.sign2 = (TextView) convertView.findViewById(R.id.sign2); viewHolder.sign3 = (TextView) convertView.findViewById(R.id.sign3); viewHolder.up = (Button) convertView.findViewById(R.id.yes_up); viewHolder.no_up = (Button) convertView.findViewById(R.id.no_up); viewHolder.up_num = (TextView) convertView.findViewById(R.id.up_num); viewHolder.say_sth = (ImageButton) convertView.findViewById(R.id.say_sth); viewHolder.share = (ImageButton) convertView.findViewById(R.id.share); viewHolder.fl = (FrameLayout) convertView.findViewById(R.id.fl); viewHolder.describe = (TextView) convertView.findViewById(R.id.describe); viewHolder.iv.setOnClickListener(clickListener); lmap.put(position, convertView); convertView.setTag(viewHolder); followInfo = data.get(position); LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) viewHolder.fl.getLayoutParams(); layoutParams.width = AndroidUtil.SCREEN_WIDTH; //图片宽度填满屏幕 layoutParams.height = (int) (AndroidUtil.SCREEN_WIDTH * 1.5); viewHolder.fl.setLayoutParams(layoutParams); viewHolder.user_logo.setImageResource(R.drawable.ic_launcher); viewHolder.iv.setImageResource(R.drawable.ic_launcher); viewHolder.user_name.setText(followInfo.getUser_name()); viewHolder.up_num.setText(followInfo.getHot() + ""); viewHolder.add_time.setText(UpdateTime.getUpdateDate(new Date().getTime(), followInfo.getUpload_date(), context)); if (!followInfo.getDescribe().equals("")){ viewHolder.describe.setVisibility(0); viewHolder.describe.setText(followInfo.getDescribe()); } if (followInfo.getLikeStatus() == 1){ viewHolder.up.setVisibility(View.VISIBLE); viewHolder.no_up.setVisibility(View.INVISIBLE); } else { viewHolder.up.setVisibility(View.INVISIBLE); viewHolder.no_up.setVisibility(View.VISIBLE); } if (!followInfo.getCountry3().equals("")){ viewHolder.sign1.setVisibility(View.VISIBLE); viewHolder.sign1.setText("#" + followInfo.getCountry3() + " "); } if (!followInfo.getFashion().equals("")){ viewHolder.sign2.setVisibility(View.VISIBLE); viewHolder.sign2.setText("#" + followInfo.getFashion() + " "); } if (!followInfo.getScene().equals("")){ viewHolder.sign3.setVisibility(View.VISIBLE); viewHolder.sign3.setText("#" + followInfo.getScene() + " "); } //图片设置 final String user_image = followInfo.getImage_id(); finalBitmap.display(viewHolder.iv,AndroidUtil.SERVER_PATH+ //finalBitmap加载图片 "imageLoad/load_image_buff/"+ user_image +"/00/0"); //头像设置图片 final String user_logoUrl = followInfo.getUser_id(); finalBitmap.display(viewHolder.user_logo,AndroidUtil.SERVER_PATH +"imageLoad/load_user_image_buff/" + user_logoUrl); if (followInfo.getTags() != null && followInfo.getTags().size() != 0){ //动态添加标签 for (int i = 0; i < followInfo.getTags().size(); i++){ //TAG数 float tranX; float tranY; View tag_layout; final Tags tag = followInfo.getTags().get(i); if (tag.getPercentX() == null || tag.getPercentX().equals("") || tag.getPercentX().equals("null")){ tranX = Float.parseFloat(tag.getTagX()) / 480 * layoutParams.width; tranY = Float.parseFloat(tag.getTagY()) / 720 * layoutParams.height - AndroidUtil.dip2px(context, 8); } else { tranX = Float.parseFloat(tag.getPercentX()) * layoutParams.width; tranY = Float.parseFloat(tag.getPercentY()) * layoutParams.height - AndroidUtil.dip2px(context, 8); } // Log.e("tranX", tranX + ""); // Log.e("tranY", tranY + ""); //链接图片是否占空间 int brandURLLength = 0; boolean isBrandUrl = false; if (tag.getBrandURL() != null && !tag.getBrandURL().equals("") && !tag.getBrandURL().equals("null")){ isBrandUrl = true; brandURLLength = AndroidUtil.dip2px(context, 25); } //圆点及箭头及文字空白区域的长度和 int pointArrowLength = AndroidUtil.dip2px(context, 35); //文字的长度 int textLength = AndroidUtil.getLineLength(tag.getBrand(), 28); // Log.e("position", position + ""); TextView tag_text; ImageView tag_brand; // 判断左边显示还是右边显示 if (layoutParams.width - tranX >= brandURLLength + pointArrowLength + textLength){ //右边显示 tag_layout = LayoutInflater.from(context).inflate(R.layout.right_tag, null); tag_text = (TextView) tag_layout.findViewById(R.id.tag_text); tag_brand = (ImageView) tag_layout.findViewById(R.id.tag_brand); tag_layout.setTranslationX(tranX); tag_layout.setTranslationY(tranY); } else if (tranX < brandURLLength + pointArrowLength + textLength){ //显示不全 if (tranX * 2 < layoutParams.width){ //右边显示.但显示不全 tag_layout = LayoutInflater.from(context).inflate(R.layout.right_tag, null); tag_text = (TextView) tag_layout.findViewById(R.id.tag_text); tag_text.setWidth((int)(layoutParams.width - tranX - brandURLLength - pointArrowLength + AndroidUtil.dip2px(context, 10))); tag_brand = (ImageView) tag_layout.findViewById(R.id.tag_brand); tag_layout.setTranslationX(tranX); tag_layout.setTranslationY(tranY); } else { //左边显示 不全 tag_layout = LayoutInflater.from(context).inflate(R.layout.left_tag, null); tag_text = (TextView) tag_layout.findViewById(R.id.tag_text); tag_text.setWidth((int)(tranX - brandURLLength - AndroidUtil.dip2px(context, 15))); tag_brand = (ImageView) tag_layout.findViewById(R.id.tag_brand); tag_layout.setTranslationY(tranY); } } else { //左边显示 tag_layout = LayoutInflater.from(context).inflate(R.layout.left_tag, null); tag_text = (TextView) tag_layout.findViewById(R.id.tag_text); tag_brand = (ImageView) tag_layout.findViewById(R.id.tag_brand); tag_layout.setTranslationX(tranX - AndroidUtil.dip2px(context, 25) - textLength - brandURLLength); tag_layout.setTranslationY(tranY); } tag_text.setText(tag.getBrand()); if (isBrandUrl){ tag_brand.setVisibility(View.VISIBLE); } viewHolder.fl.addView(tag_layout); tag_text.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(context, SearchResultActivity.class); ArrayList<String> list = new ArrayList<String>(); list.add(tag.getBrand()); intent.putExtra("sign_cont", list); intent.putExtra("from_flag", "&brand="); context.startActivity(intent); } }); tag_brand.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (tag.getBrandURL() != null && !tag.getBrandURL().equals("")){ Uri uri = Uri.parse(tag.getBrandURL()); Intent intent = new Intent(); intent.setData(uri); intent.setAction(Intent.ACTION_VIEW); try{ context.startActivity(intent); } catch (Exception e){ Toast toast = Toast.makeText(context, context.getResources().getString(R.string.err_uri), Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 300); toast.show(); } } } }); } } addListener(convertView, followInfo, followInfo.getImage_id(), position); } else { convertView = lmap.get(position); viewHolder = (ViewHolder) convertView.getTag(); } return convertView; } public class ViewHolder{ ImageView user_logo; TextView user_name; TextView add_time; ImageView iv; TextView sign1; TextView sign2; TextView sign3; Button up; Button no_up; TextView up_num; ImageButton say_sth; ImageButton share; FrameLayout fl; TextView describe; } public void addListener(final View convertView,final FollowInfo followInfo, final String image_uri, final int position) { final Button no_up = (Button) convertView.findViewById(R.id.no_up); final Button yes_up = (Button) convertView.findViewById(R.id.yes_up); final TextView up_num = (TextView) convertView.findViewById(R.id.up_num); final ImageButton share = (ImageButton) convertView.findViewById(R.id.share); final TextView sign1 = (TextView) convertView.findViewById(R.id.sign1); final TextView sign2 = (TextView) convertView.findViewById(R.id.sign2); final TextView sign3 = (TextView) convertView.findViewById(R.id.sign3); final ImageButton say_sth = (ImageButton) convertView.findViewById(R.id.say_sth); final ImageView user_logo = (ImageView) convertView.findViewById(R.id.user_logo); final TextView user_name = (TextView) convertView.findViewById(R.id.user_name); no_up.setOnClickListener(new OnClickListener() { public void onClick(View v) { no_up.setVisibility(View.INVISIBLE); yes_up.setVisibility(View.VISIBLE); up_num.setText(Integer.parseInt(up_num.getText().toString()) + 1 + ""); new AsyncUpLoad(followInfo.getImage_id(), followInfo.getUser_id()); } }); yes_up.setOnClickListener(new OnClickListener() { public void onClick(View v) { no_up.setVisibility(View.VISIBLE); yes_up.setVisibility(View.INVISIBLE); up_num.setText(Integer.parseInt(up_num.getText().toString()) - 1 + ""); new AsyncUpLoad(followInfo.getImage_id(), followInfo.getUser_id()); } }); }

android 动态添加了button后,怎么给button设置监听器?

android 动态添加了button后,怎么给button设置监听器? 类似微信一样,我收到了语音消息,我在主界面上添加了一个按钮,这个按钮怎么添加监听器?点击后就可以播放我收到的那条消息。 我已经用listview动态添加item(是一个button)了,就是不知道每一个item怎么设置点击后播放不同的声音。。。 private void send() { if(flag==0)//发送的是文字 { sendContString = mEditTextContent.getText().toString(); if (sendContString.length() > 0) { ChatMsgEntity entity = new ChatMsgEntity(); entity.setDate(getDate()); entity.setName("syskey"); entity.setMsgType(false); entity.setText(sendContString); entity.setKind(1); mDataArrays.add(entity); new Thread(new Runnable() { @Override public void run() { try { new Client().send(ip, port,sendContString,1,Aname,Bname); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); } } else//发送的是语音 { ChatMsgEntity entity = new ChatMsgEntity(); entity.setDate(getDate()); entity.setName("syskey"); entity.setMsgType(false);//表示是自己发的 entity.setText(pathWav);//录音后存放的声音的地址 entity.setKind(2);//种类是2表示是声音 mDataArrays.add(entity); } mAdapter.notifyDataSetChanged();//刷新 mEditTextContent.setText(""); mListView.setSelection(mListView.getCount() - 1);//指向最后一个 } /////////////////////分割线//////////////////////////// package com.myweixin; import android.R.integer; import android.content.Context; import android.database.DataSetObserver; import android.media.MediaPlayer; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.LinearLayout; import android.widget.TextView; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class ChatMsgViewAdapter extends BaseAdapter { public static interface IMsgViewType { int IMVT_COM_MSG = 0; int IMVT_TO_MSG = 1; } private static final String TAG = ChatMsgViewAdapter.class.getSimpleName(); private List<ChatMsgEntity> coll; private Context ctx; private ChatMsgEntity entity; private LayoutInflater mInflater; private ViewHolder viewHolder = null; private String position1; public ChatMsgViewAdapter(Context context, List<ChatMsgEntity> coll) { ctx = context; this.coll = coll; mInflater = LayoutInflater.from(context); } public int getCount() { return coll.size(); } public Object getItem(int position) { return coll.get(position); } public long getItemId(int position) { return position; } public int getItemViewType(int position) { // TODO Auto-generated method stub ChatMsgEntity entity = coll.get(position); if (entity.getMsgType()) { return IMsgViewType.IMVT_COM_MSG; }else{ return IMsgViewType.IMVT_TO_MSG; } } public int getViewTypeCount() { // TODO Auto-generated method stub return 2; } public View getView(int position, View convertView, ViewGroup parent) { this.position1=position+""; entity = coll.get(position); boolean isComMsg = entity.getMsgType(); if (convertView == null) { if (isComMsg) { convertView = mInflater.inflate(R.layout.chatting_item_msg_text_left, null); }else{ convertView = mInflater.inflate(R.layout.chatting_item_msg_text_right, null); } viewHolder = new ViewHolder(); viewHolder.tvSendTime = (TextView) convertView.findViewById(R.id.tv_sendtime); viewHolder.tvUserName = (TextView) convertView.findViewById(R.id.tv_username); viewHolder.tvContent = (TextView) convertView.findViewById(R.id.tv_chatcontent); viewHolder.isComMsg = isComMsg; //添加监听事件 // if(entity.getKind()==2) // { // // viewHolder.tvContent.setOnClickListener(new OnClickListener() { // // @Override // public void onClick(View v) {//设置监听器 // //play(viewHolder.tempTextView.getText().toString()); // // } // }); // } convertView.setTag(viewHolder); }else{ viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.tvSendTime.setText(entity.getDate()); viewHolder.tvUserName.setText(entity.getName()); if(entity.getKind()==1) viewHolder.tvContent.setText(entity.getText()); else{ viewHolder.tvContent.setText("语音-点击播放"); viewHolder.tvContent.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {//设置监听器 Log.i("BBB", position1); } }); } return convertView; } static class ViewHolder { public TextView tvSendTime; public TextView tvUserName; public TextView tvContent; public TextView tempTextView; public boolean isComMsg = true; } private void play(String url) { try { MediaPlayer mp = new MediaPlayer(); mp.reset(); mp.setDataSource(url); mp.prepare(); mp.start(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

急!android我自己写了个组合控件RelativeLayout,怎么加入ListView

public class Viewg extends RelativeLayout { private TextView number; private EditText thing; private Button biaozhu; private Button delete; private int isbiaozhu=0; private int xiabiao; public Viewg(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context); } public Viewg(Context context, AttributeSet attrs){ super(context,attrs); init(context); } public Viewg(Context context,int xiabiao){ super(context); this.xiabiao=xiabiao; init(context); } public void init(Context context){ Viewg.inflate(context, R.layout.thing, this); number=(TextView)findViewById(R.id.num); thing=(EditText)findViewById(R.id.neirong); biaozhu=(Button)findViewById(R.id.biaozhu); delete=(Button)findViewById(R.id.delete); number.setText(num[xiabiao-1]); this.setBackgroundResource(R.drawable.bwllist); } 上面是组合控件,我是想点击一下按钮就添加一个这个类到ListView中。 ListView还写适配器吗?如果写的话怎么写,用baseadapter吗?求大神指点!!!

请教一个关于android ListView的问题

在ListView的Item中有一个Switch控件,当Item过多屏幕装不下时,如果上下滑动使未显示的Item显示,这时开始和结尾的几个Item中的Switch控件会自动改变状态,并响应状态改变的事件。如果Item越多,会自动改变的Switch控件就越多。求解决方法,谢谢! private class MAdapter extends CursorAdapter { private Context context; private LayoutInflater mInflater; public MAdapter(Context context, Cursor c) { super(context, c, true); this.context = context; mInflater = LayoutInflater.from(context); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { View v = mInflater.inflate(R.layout.main_task_list_item, null); return v; } @Override public void bindView(View view, Context context, Cursor cursor) { final MZTask task = new MZTask(cursor); // ic ImageView ic = (ImageView) view .findViewById(R.id.main_list_action_ic); ic.setImageResource(task.getIcId()); // action name TextView actionName = (TextView) view .findViewById(R.id.main_list_action_name); actionName.setText(task.getActionName(context)); // time TextView time = (TextView) view .findViewById(R.id.main_list_task_time); time.setText(task.getTimeString()); // repeat TextView repeat = (TextView) view .findViewById(R.id.main_list_task_repeat); repeat.setText(task.getDayStringOfWeek(context)); // switch view final Switch stch = (Switch) view .findViewById(R.id.main_list_task_switch); stch.setOnCheckedChangeListener(getCheckedChangeListener(task)); stch.setChecked(task.state()); // list more RelativeLayout icLayout = (RelativeLayout) view .findViewById(R.id.main_list_more); icLayout.setOnClickListener(new OnClickListener() { public void onClick(View v) { popUpMenu(task); } }); // .. RelativeLayout itemLayout = (RelativeLayout) view .findViewById(R.id.main_list_layout_switch); itemLayout.setOnClickListener(new OnClickListener() { public void onClick(View v) { stch.setChecked(!stch.isChecked()); } }); } public OnCheckedChangeListener getCheckedChangeListener( final MZTask task) { return new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton button, boolean change) { if (change) task.startTask(context, dbAdapter); else task.cancelTask(context, dbAdapter); } }; } }

为Fragment中的ListView中的ImageView赋值在setAdapter()时报错

public class MyFragment3 extends ListFragment{ private ListView lv; private Context context; private List<Map<String,Object>> data; private Map<String,Object> map; public MyFragment3(Context context){ this.context = context; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.mylog,container,false); lv = (ListView) view.findViewById(R.id.log_lv); return view; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dataInit(); SimpleAdapter adapter = new SimpleAdapter(context,data,R.layout.log_item, new String[]{"pic"}, new int[]{R.id.log_pic}); adapter.setViewBinder(new ViewBinder() { @Override public boolean setViewValue(View view, Object data, String textRepresentation) { if(view instanceof ImageView & data instanceof Bitmap){ ImageView iv = (ImageView) view; Bitmap bt = (Bitmap) data; iv.setImageBitmap(bt); return true; } return false; } }); lv.setAdapter(adapter); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } @Override public void onAttach(Activity activity) { super.onAttach(activity); } public void dataInit(){ InputStream in = getResources().openRawResource(R.drawable.a); Bitmap bit = BitmapFactory.decodeStream(in); InputStream in1 = getResources().openRawResource(R.drawable.b); Bitmap bit1 = BitmapFactory.decodeStream(in1); data = new ArrayList<Map<String,Object>>(); map = new HashMap<String,Object>(); map.put("pic", bit); data.add(map); map = new HashMap<String,Object>(); map.put("pic", bit1); data.add(map); } }

关于ListView与子控件焦点的问题,出现了两个焦点?

大家遇到这个情况没?怎么会有两个焦点呢?????![图片说明](https://img-ask.csdn.net/upload/201508/25/1440483186_724478.jpg) --------------------------------------------------------- 我现在希望,焦点只在播放按钮和闹铃按钮间切换。 请大神给点思路呀。。。。 -------------------------------------------------------------- 再补充下现象: 名词解释: 假焦点:左边的textview。 真焦点:“play”button。 我用遥控器下移动的时候,假焦点会移动到Item的 textview,真焦点移动到“play”Button上。再按“下”,移动到下一个item的textview,真焦点不动。直到假焦点移动到最后一个item后,真焦点才开始向下移动。

android listview中控件的相互作用

listview中每一项item中,用button控制改变textview的值,为什么每次点击都只改变最后一个textview的值?。每个button的点击事件都触发了,好像适配器每次都找了最后一个textview,求帮助!。。。。。。。。。。。。。。。。

安卓,按了更新按钮后出现这个提示

![图片说明](https://img-ask.csdn.net/upload/201612/23/1482453892_506778.png) ![图片说明](https://img-ask.csdn.net/upload/201612/23/1482453905_510055.png) MainActivity.java ``` package com.example.sqlite; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener{ private static final String TAG="Add"; private static final ListAdapter listAdapter = null; private EditText ecode,ename,ebirth; private Button badd,bdel,bupdate,bsele; private SQLiteDatabase db=null; private TextView tedatashow; private ListView datashow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ecode=(EditText)findViewById(R.id.ecode); ename=(EditText)findViewById(R.id.ename); ebirth=(EditText)findViewById(R.id.ebirth); badd=(Button)findViewById(R.id.badd); bdel=(Button)findViewById(R.id.bdel); bupdate=(Button)findViewById(R.id.bupdate); bsele=(Button)findViewById(R.id.bsele); tedatashow=(TextView)findViewById(R.id.tedatashow); datashow=(ListView)findViewById(R.id.datashow); badd.setOnClickListener((android.view.View.OnClickListener) this); bdel.setOnClickListener((android.view.View.OnClickListener) this); bsele.setOnClickListener((android.view.View.OnClickListener) this); bupdate.setOnClickListener((android.view.View.OnClickListener) this); } public void onClick(View v) { // TODO Auto-generated method stub MyDBHelper helper=new MyDBHelper(this); String code=ecode.getText().toString().trim(); String name=ename.getText().toString().trim(); String birth=ebirth.getText().toString().trim(); if(v==badd) { if(code.length()!=0 && name.length()!=0 && birth.length()!=0) { try { db=helper.getWritableDatabase(); String sql="INSERT INTO user(ecode,ename,ebirth)" +"VALUES('"+ecode.getText()+"','" +ename.getText()+"','" +ebirth.getText()+"')"; db.execSQL(sql); Toast.makeText(this, "添加成功!", Toast.LENGTH_LONG).show(); ecode.setText(""); ename.setText(""); ebirth.setText(""); } catch(Exception e) { Toast.makeText(this, "出错了!"+ e.getMessage(),Toast.LENGTH_LONG).show(); } } else Toast.makeText(this, "学号和姓名出生日期不能为空!", Toast.LENGTH_LONG).show(); } if(v==bdel) { if(code.length()!=0) { try { db=helper.getWritableDatabase(); String sql="delete from user where ecode='"+ecode.getText()+"'"; db.execSQL(sql); Toast.makeText(this, "成功删除!", Toast.LENGTH_LONG).show(); ecode.setText(""); } catch(Exception e) { Toast.makeText(this, "出错了!", Toast.LENGTH_LONG).show(); } } } if(v==bupdate) { db=helper.getWritableDatabase(); if(code.length()!=0 && name.length()!=0 && birth.length()!=0) { try { String sql="update user set ecode='"+ecode.getText() +"'"+"where ename='"+ename.getText()+"',birthday='" +ebirth.getText()+"'where code='" +ecode.getText()+"''"; db.execSQL(sql); Toast.makeText(this, "成功更新!", Toast.LENGTH_LONG).show(); ecode.setText(""); ename.setText(""); ebirth.setText(""); } catch(Exception e) { Toast.makeText(this, "出错了!"+e.getMessage(),Toast.LENGTH_LONG).show(); } } else Toast.makeText(this, "学号姓名出生日期不能为空!", Toast.LENGTH_LONG).show(); } if(v==bsele) { if(code.length()!=0) { try { ArrayList<String> all=new ArrayList<String>(); String sql="select * from user where ecode =? or ename =? or ebirth =? "; Cursor result=helper.getReadableDatabase().rawQuery(sql,new String[]{code,code,code}); while(result.moveToNext()) { all.add("["+result.getString(0)+"]"+""+result.getString(1)+","+result.getString(2)); } ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,all); datashow.setAdapter(arrayAdapter); } catch(Exception f) { Toast.makeText(this, "显示不了", Toast.LENGTH_LONG).show(); } } } db.close(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } ``` MyDBHelper.java ``` package com.example.sqlite; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MyDBHelper extends SQLiteOpenHelper{ public MyDBHelper(Context context) { super(context,"mvdb.db",null,2); } public void onCreate(SQLiteDatabase db) { String sql="create table user(ecode text,ename text,ebirth text);"; db.execSQL(sql); } public void onUpgrade(SQLiteDatabase db,int arg1,int arg2) { String sql="create table user(ecode text,ename text,ebirth text);"; db.execSQL(sql); this.onCreate(db); } } ```

关于Android中,控件自动填满空白的问题

各位大侠,我用的是相对布局,底部有一个类似菜单的控件,顶部也有一个导航栏,两个之间的空白我想用一个滚动的TextView来填满,它的高度不能超出底部的菜单,请问这个该如何实现????

安卓控件和持有者模式,出现空指针异常

错误提示空指针异常,本人看了好几遍没找到,望大神们指点 public class MainActivity extends Activity { List<Person> list=new ArrayList<Person>(); ListView lv=null; EditText et=null; Button btn=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list.add(new Person("张三","男",22)); list.add(new Person("李四","男",22)); lv=(ListView) findViewById(R.id.lv); et=(EditText) findViewById(R.id.et); btn=(Button) findViewById(R.id.btn); lv.setAdapter(new MyAdapter()); } class MyAdapter extends BaseAdapter{ @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View v=convertView; MyWrapper wrapper=null; if(v==null){ v=LayoutInflater.from(MainActivity.this).inflate(R.layout.linearlayout, null); wrapper=new MyWrapper(v); v.setTag(wrapper); } else{ wrapper=(MyWrapper) v.getTag(); } TextView tvname=wrapper.getTvname(); TextView tvsex=wrapper.getTvsex(); TextView tvage=wrapper.getTvage(); tvname.setText(list.get(position).getName()); tvsex.setText(list.get(position).getSex()); tvage.setText(list.get(position).getAge()+""); return v; } } class MyWrapper{ TextView tvname=null; TextView tvsex=null; TextView tvage=null; View v=null; public MyWrapper(View v) { super(); this.v = v; } public TextView getTvname(){ if(tvname==null){ tvname=(TextView) v.findViewById(R.id.tvname); } return tvname; } public TextView getTvsex(){ if(tvsex==null){ tvname=(TextView) v.findViewById(R.id.tvsex); } return tvsex; } public TextView getTvage(){ if(tvage==null){ tvage=(TextView) v.findViewById(R.id.tvage); } return tvage; } } }

DrawerLayout侧边栏打开的状态下竟然可以点击到下面的主界面

我用DrawerLayout做的侧边栏,主界面是framelayout用来动态加载fragment.做好之后结果侧边栏打开的时候如果在侧边栏里像是textView一类的没有设置点击监听的view上面点击或者滑动都会点到主界面的fragment上,里面是一个listview,就会点击到listview的条目,都快醉了,可以告诉我为什么么![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/34.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/34.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/34.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/34.gif)

findviewbyid 空指针的问题

各位大侠,最近发现一个问题个人觉得非常诡异。 在oncreate 中 listView_test = (ListView) this.findViewById(R.id.listcardinfo); 为null。 但是 同一个页面中的一个button的 onClick方法确可以找到这个listview,并且赋值。 附上XML ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:umadsdk="http://schemas.android.com/apk/res/com.LoveBus" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#FFFFFF" android:orientation="vertical" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试" android:textColor="#000000" android:textSize="22.0dip" /> <include layout="@layout/home_title_layout"/> </RelativeLayout> <android.support.v4.view.ViewPager android:id="@+id/vPager" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:layout_weight="1.0" android:flipInterval="30" android:persistentDrawingCache="animation" /> </LinearLayout> ``` ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ListView android:id="@+id/listcardinfo" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView> </LinearLayout> ```

修改不了ViewPager里面的值

无论如何都修改不了ViewPager里面的值,尝试了各种控件,都是报错的结果 以下为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:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.msi.lostfinder.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/content" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1"> </android.support.v4.view.ViewPager> <android.support.design.widget.BottomNavigationView android:id="@+id/navigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="?android:attr/windowBackground" app:menu="@menu/navigation" /> </LinearLayout> ``` 以下为MainActivity代码 ``` package com.example.msi.lostfinder; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.BottomNavigationView; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView listLost; private String[] names = {"水杯", "手机", "钥匙", "USB线", "书籍", "饰品", "USB线", "U盘"}; private int[] icons = {R.drawable.cup, R.drawable.phone, R.drawable.key, R.drawable.xian, R.drawable.cidian, R.drawable.wallet_woman, R.drawable.xian, R.drawable.upan}; private View listview,history,map,user; private Button btn; private List<View> viewList; private ViewPager root; //底部菜单栏各个菜单项的点击事件处理 private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.navigation_LostFinder://失物招领 root.setCurrentItem(0); return true; case R.id.navigation_History://历史信息 root.setCurrentItem(1); return true; case R.id.navigation_Map://地图 root.setCurrentItem(2); return true; case R.id.navigation_User://用户信息 root.setCurrentItem(3); return true; } return false; } }; public void init(){ LayoutInflater inflater = getLayoutInflater(); listLost = inflater.inflate(R.layout.lost_items,null).findViewById(R.id.lost_item); MyBaseAdapter mAdapter = new MyBaseAdapter(this,names,icons); listLost.setAdapter(mAdapter); btn=inflater.inflate(R.layout.map,null).findViewById(R.id.button2); btn.setText("我能够动!"); } @Override protected void onCreate(Bundle savedInstanceState) { try{ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); /*设置参数*/ root = (ViewPager) findViewById(R.id.content); LayoutInflater inflater = getLayoutInflater(); listview = inflater.inflate(R.layout.lost_items, null); history = inflater.inflate(R.layout.history, null); map = inflater.inflate(R.layout.map, null); user = inflater.inflate(R.layout.user, null); LayoutInflater layout=this.getLayoutInflater(); View view=layout.inflate(R.layout.map, null); Button b=view.findViewById(R.id.button2); b.setText("我能动"); TextView textview = (TextView) LayoutInflater.from(MainActivity.this).inflate(R.layout.history , null).findViewById(R.id.textView); textview.setText("能改"); /*将要分页显示的View装入数组中*/ viewList = new ArrayList<>(); viewList.add(listview); viewList.add(history); viewList.add(map); viewList.add(user); root.setAdapter(pagerAdapter); root.setCurrentItem(0); BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); } catch(Exception ex){ ex.printStackTrace(); } } public PagerAdapter pagerAdapter = new PagerAdapter() { @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub //根据传来的key,找到view,判断与传来的参数View arg0是不是同一个视图 return arg0 == arg1; } @Override public int getCount() { // TODO Auto-generated method stub return viewList.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) { // TODO Auto-generated method stub container.removeView(viewList.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { // TODO Auto-generated method stub container.addView(viewList.get(position)); //把当前新增视图的位置(position)作为Key传过去 return viewList.get(position); } }; } ```

Android很奇怪棘手的问题,setText有时不起作用

遇到一个很操蛋的问题,在有一个fragment里面调用控件的setText()的时候。偶尔不起作用,但是在这之后调用getText输出的log确是正确的。这个问题还不好重现,90%的时候都是没问题的。昨天很奇怪的是第一次打包后启动应用,都起作用,关掉后再次启动应用,又不起作用的了。不知道有没有遇到过的

RecyclerView中点击item跳转到其他Activity并显示item内容如何实现?

适配器代码 ``` package com.example.uilayout.adapter; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.example.uilayout.R; import com.example.uilayout.model.Msg; import java.util.List; /** * Created by 夏雨来 on 2018/11/20. */ public class MsgListAdapter extends RecyclerView.Adapter<MsgListAdapter.viewHolder> { private List<Msg> msgList; //1、创建构造函数 //构造函数参数是list的集合,他是rv直接的数据来源 //在做Adapter实例化的时候必须传入list的集合数据 public MsgListAdapter(List<Msg> msgList) { this.msgList = msgList; } //2、创建类ViewHolder(视图容器),承载的是条目中的控件 //做条目中控件的声明和绑定 class viewHolder extends RecyclerView.ViewHolder{ ImageView iv_head; TextView tv_friend; TextView tv_message; TextView tv_time; View itemView; public viewHolder(View itemView) { super(itemView); //itemView的值由一步一步传递过来的 this.itemView=itemView; iv_head=itemView.findViewById(R.id.iv_head); tv_friend=itemView.findViewById(R.id.tv_friend); tv_message=itemView.findViewById(R.id.tv_message); tv_time=itemView.findViewById(R.id.tv_time); } } //创建ViewHolder对象 // @Override public viewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View itemView = View.inflate(viewGroup.getContext(),R.layout.item_msglist,null); viewHolder holder=new viewHolder(itemView); return holder; } //给ViewHolder中的控件设置数据 @Override public void onBindViewHolder(final viewHolder viewHolder, final int i) { final Msg msg = msgList.get(i); viewHolder.iv_head.setImageResource(msg.getImage_head()); viewHolder.tv_friend.setText(msg.getFriend()); viewHolder.tv_message.setText(msg.getMessage()); viewHolder.tv_time.setText(msg.getTime()); //设置条目中的点击监听 viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(view.getContext(), "你想与" + msg.getFriend() + "聊天", Toast.LENGTH_SHORT).show(); // TextView friendView=view.findViewById(R.id.tv_friend); // Intent intent=new Intent(); // Intent intent=new Intent(mContext,ChatActivity.class); // intent.putExtra("friend",msg.getFriend().toString()); // mContext.startActivity(intent); } }); //设置条目中具体控件的点击监听 // viewHolder.iv_head.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View view) { // Toast.makeText(view.getContext(), "你点击了"+msg.getFriend()+"头像", Toast.LENGTH_SHORT).show(); // } // }); } @Override public int getItemCount() { return msgList.size(); } } ``` Activity代码 ``` package com.example.uilayout.activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import com.example.uilayout.model.Msg; import com.example.uilayout.adapter.MsgListAdapter; import com.example.uilayout.R; import com.example.uilayout.utils.MySQLiteOpenHelper; import java.util.ArrayList; import java.util.List; public class MsgListActivity extends AppCompatActivity { RecyclerView rv; List<Msg> msgList = new ArrayList<>(); // TextView friend; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_msglist); rv = findViewById(R.id.rv); // friend =findViewById(R.id.tv_friend); //给rv设置线性布局 rv.setLayoutManager(new LinearLayoutManager(this)); //初始化List集合数据 // initList(msgList); initListFromDB(); //给rv设置适配器 rv.setAdapter(new MsgListAdapter(msgList)); // MySQLiteOpenHelper helper=new MySQLiteOpenHelper(this,"wechat",null,1); // SQLiteDatabase db=helper.getWritableDatabase(); } public void initListFromDB() { MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this, "wechat", null, 1); SQLiteDatabase db = helper.getWritableDatabase(); Cursor cursor = db.query("msg", null, null, null, null, null, null); while (cursor.moveToNext()) { int headImageSrc = cursor.getInt(cursor.getColumnIndex("headImageSrc")); String friend = cursor.getString(cursor.getColumnIndex("friend")); String message = cursor.getString(cursor.getColumnIndex("message")); String time = cursor.getString(cursor.getColumnIndex("time")); Msg msg = new Msg(headImageSrc, friend, message, time); msgList.add(msg); } } } ``` 布局文件 ``` <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:descendantFocusability="blocksDescendants" > <ImageView android:id="@+id/iv_head" android:layout_width="60dp" android:layout_height="60dp" android:src="@drawable/a" android:layout_marginTop="5dp" android:layout_marginLeft="10dp" android:onClick="click" /> <TextView android:id="@+id/tv_friend" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="小张" android:textSize="20sp" android:textColor="#000" android:layout_toRightOf="@+id/iv_head" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:onClick="click" /> <TextView android:id="@+id/tv_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你在干嘛" android:textSize="15sp" android:lines="1" android:layout_alignLeft="@+id/tv_friend" android:layout_marginTop="40dp" android:onClick="click" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="21:00" android:textSize="15sp" android:layout_alignTop="@+id/tv_friend" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:onClick="click" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#C0C0C0" android:layout_alignLeft="@+id/iv_head" android:layout_alignRight="@+id/tv_time" android:layout_marginTop="74dp" /> </RelativeLayout> ``` 未跳转时界面 ![未跳转时界面](https://img-ask.csdn.net/upload/201812/23/1545574749_907427.png) 效果,点击item跳转到另一个界面之后,界面显示与XX聊天,XX是由item中获取的 ![效果,点击item跳转到另一个界面之后,界面显示与XX聊天,XX是由item中获取的](https://img-ask.csdn.net/upload/201812/23/1545574974_525413.png)

如果能重来,我不会选择北漂——初见北京

一个人走的路

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

2020年大厂Java面试前复习的正确姿势(800+面试题答案解析)

前言 个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油! 本篇分享的面试题内容包括:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ...

抖音上很火的时钟效果

反正,我的抖音没人看,别人都有几十万个赞什么的。 发到CSDN上来,大家交流下~ 主要用到原生态的 JS+CSS3。 具体不解释了,看注释: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Title&lt;/tit...

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

又出事了?网站被攻击了?高中生?

北京时间2020年3月27日9点整,如往常一样来到公司,带开电脑,正准备打开Github网站看一会源代码,再开始手头的工作。哟吼,一直打不开,一直出现如下页面: 我想很多网友也尝到了甜头,各大技术群炸开了锅,据网友反馈有攻击者正在发起大规模的中间人挟持,京东和Github等网站等网站都受到了影响。 什么是中间中间人挟持呢? 简而言之,就是攻击者在数据网络传输的过程中,截获传输过程中的数据并篡改...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

我把华为小米年报放一起,发现华为才是真·手机公司,小米确实不靠卖手机赚钱...

郭一璞 发自 凹非寺量子位 报道 | 公众号 QbitAI国产手机界的两大玩家,华为&amp;小米,昨天在同一天前后脚发布了2019年财报。同行冤家,发财报也碰在了同一天。那我们就对比...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

毕业5年,我熬夜整理出了这50个优质的电子书网站,吐血推荐!

大家好,我是武哥,最近经常有小伙伴问我要电子书,都什么年代了,还找不到电子书吗?如果要说原因,那就是你还没遇到武哥我(手动滑稽~)!我今天把这么多年我经常看的电子书网站整理一下给大家,基本上能解决大家的需求。不管是在校生还是已经工作了,相信肯定对你有所帮助! 1.鸠摩搜书 首先给大家推荐的网站是:鸠摩搜书 地址:https://www.jiumodiary.com/ 这个网上非常棒,上面有很多优质...

MySQL性能优化(五):为什么查询速度这么慢

前期回顾: MySQL性能优化(一):MySQL架构与核心问题 MySQL性能优化(二):选择优化的数据类型 MySQL性能优化(三):深入理解索引的这点事 MySQL性能优化(四):如何高效正确的使用索引 前面章节我们介绍了如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的MySQL来说是必不可少的。但这些还完全不够,还需要合理的设计查询。如果查询写的很糟糕,即使表结构再合理、索引再...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

总结了Mybatis,原来知识点也没多少嘛

看完这篇Mybatis,感觉你三天就会用了。

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

疫情后北上广深租房价格跌了吗? | Alfred数据室

去年3月份我们发布了《北上广深租房图鉴》(点击阅读),细数了北上广深租房的各种因素对租房价格的影响。一年过去了,在面临新冠疫情的后续影响、城市尚未完全恢复正常运转、学校还没开学等情况下...

面试官给我挖坑:a[i][j] 和 a[j][i] 有什么区别?

点击上方“朱小厮的博客”,选择“设为星标”后台回复&#34;1024&#34;领取公众号专属资料本文以一个简单的程序开头——数组赋值:int LEN = 10000; int[][] ...

在拼多多上班,是一种什么样的体验?我心态崩了呀!

之前有很多读者咨询我:武哥,在拼多多上班是一种什么样的体验?由于一直很忙,没抽出时间来和大家分享。上周末特地花点时间来写了一篇文章,跟大家分享一下拼多多的日常。 1. 倒时差的作息 可能很多小伙伴都听说了,拼多多加班很严重。这怎么说呢?作息上确实和其他公司有点区别,大家知道 996,那么自然也就能理解拼多多的“11 11 6”了。 所以当很多小伙伴早上出门时,他们是这样的: 我们是这样的: 当...

相关热词 c#树形选择 c#中类图的使用方法 c# 传参 调用exe c# 怎么定义方法 c# 修改本地时间 c#前台怎么读取资源文件 c# xml转list c#实现框选截图 m*m乘法表c# c# 乘法99表
立即提问