Java 未使用Android Studio在baseAdapter类上调用getView
我已经使用这个类扩展了基本适配器的显示值。下面的代码正确运行eclipse。但我使用AndroiStudio创建了一个新项目,该代码中的getview函数无法调用或工作。 我还检查getcount。getcount值可用Java 未使用Android Studio在baseAdapter类上调用getView,java,android,listview,Java,Android,Listview,我已经使用这个类扩展了基本适配器的显示值。下面的代码正确运行eclipse。但我使用AndroiStudio创建了一个新项目,该代码中的getview函数无法调用或工作。 我还检查getcount。getcount值可用 public class CustomAdapterChatActivity extends BaseAdapter { ArrayList<ChatUsersDetailsBean> mBeans = new ArrayList<ChatUsersD
public class CustomAdapterChatActivity extends BaseAdapter {
ArrayList<ChatUsersDetailsBean> mBeans = new ArrayList<ChatUsersDetailsBean>();
Context mcontext;
LayoutInflater inflater;
CommonUtil commonUtil;
public CustomAdapterChatActivity(Context context,
ArrayList<ChatUsersDetailsBean> mBeans) {
// TODO Auto-generated constructor stub
mcontext = context;
this.mBeans = mBeans;
commonUtil = new CommonUtil(context);
inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return mBeans.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public class Holder {
TextView name;
TextView content;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Log.e("getView",""+"getView");
if (convertView == null) {
convertView = inflater.inflate(
R.layout.chat_listview_layout_screen, null);
}
setAttributes(position, convertView);
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
click(position);
}
});
return convertView;
}
public void click(int position) {
Intent mintent = new Intent(mcontext, ChatViewBackgroundActivity.class);
mintent.putExtra("name", mBeans.get(position).getOpponent_name());
((ChatActivity) mcontext).startActivityForResult(mintent, 1);
}
public void setAttributes(final int position, View convertView) {
Holder holder = new Holder();
holder.imgdispatcher = (ImageView) convertView
.findViewById(R.id.chat_list_iv_profilepic);
}
公共类CustomAdapterChatActivity扩展BaseAdapter{
ArrayList mBeans=新的ArrayList();
语境;
充气机;
CommonUtil CommonUtil;
公共CustomAdapterChatActivity(上下文,
ArrayList(mBeans){
//TODO自动生成的构造函数存根
mcontext=上下文;
this.mBeans=mBeans;
commonUtil=新的commonUtil(上下文);
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
}
@凌驾
public int getCount(){
返回mBeans.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
公共类持有者{
文本视图名称;
文本视图内容;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
Log.e(“getView”,“getView+”);
if(convertView==null){
convertView=充气机。充气(
R.layout.chat_列表视图_布局_屏幕,空);
}
设置属性(位置、视图);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
点击(位置);
}
});
返回视图;
}
公共无效单击(整数位置){
Intent MINENT=新的Intent(mcontext,ChatViewBackgroundActivity.class);
minent.putExtra(“name”,mBeans.get(position.getOperator_name());
(聊天活动)mcontext.startActivityForResult(Minent,1);
}
公共void setAttributes(最终整型位置,视图转换视图){
支架=新支架();
holder.imgdispatcher=(ImageView)convertView
.findViewById(R.id.chat\u list\u iv\u profilepic);
}
请帮帮我,我很挣扎。
不会显示任何错误。
我检查getview是否运行,此时getview随时都不工作。
此代码包含所需的任何更改更改适配器类中的getView()方法,如以下代码所示:
public View getView (final int position, View convertView, ViewGroup parent){
if( convertView == null ){
//We must create a View:
convertView = inflater.inflate(R.layout.my_list_item, parent, false);
}
//Here we can do changes to the convertView
return convertView;
}
在添加新增加的视图时,尽量避免将null作为视图根传递。Lint现在会警告您不要将null传递给根。在这种情况下,您的应用不会崩溃,但它可能会出现错误行为。当您的子视图不知道其根视图组的正确LayoutParams时,它将尝试使用它自己确定这些参数。@AbiK如果您正如我在上面的注释中所提到的,使用下面修改过的getView()方法和setAttributes()方法的代码。我希望它对您有用
public class CustomAdapterChatActivity extends BaseAdapter {
ArrayList<ChatUsersDetailsBean> mBeans;
Context mcontext;
LayoutInflater inflater;
CommonUtil commonUtil;
public CustomAdapterChatActivity(Context context,
ArrayList<ChatUsersDetailsBean> mBeans) {
mcontext = context;
this.mBeans = mBeans;
commonUtil = new CommonUtil(context);
}
@Override
public int getCount() {
return mBeans.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public class Holder {
TextView name;
TextView content;
ImageView imgdispatcher;
}
public Holder setAttributes(final int position, View convertView) {
Holder holder = new Holder();
holder.imgdispatcher = (ImageView) convertView.findViewById(R.id.chat_list_iv_profilepic);
// holder.name=(TextView)convertView.findViewById(R.id.); // declare Id
// holder.content=(TextView)convertView.findViewById(R.id.); // declare Id
return holder;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder = null;
LayoutInflater inflater = (LayoutInflater)
mcontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.chat_listview_layout_screen, parent, false);
holder = setAttributes(position, convertView);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
click(position);
}
});
return convertView;
}
public void click(int position) {
Intent mintent = new Intent(mcontext, ChatViewBackgroundActivity.class);
mintent.putExtra("name", mBeans.get(position).getOpponent_name());
((ChatActivity) mcontext).startActivityForResult(mintent, 1);
}
}
公共类CustomAdapterChatActivity扩展BaseAdapter{
ArrayList mBeans;
语境;
充气机;
CommonUtil CommonUtil;
公共CustomAdapterChatActivity(上下文,
ArrayList(mBeans){
mcontext=上下文;
this.mBeans=mBeans;
commonUtil=新的commonUtil(上下文);
}
@凌驾
public int getCount(){
返回mBeans.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
公共类持有者{
文本视图名称;
文本视图内容;
ImageView imgdispatcher;
}
公共持有者设置属性(最终整数位置,视图转换视图){
支架=新支架();
holder.imgdispatcher=(ImageView)convertView.findViewById(R.id.chat\u list\u iv\u profilepic);
//holder.name=(TextView)convertView.findViewById(R.id.);//声明id
//holder.content=(TextView)convertView.findViewById(R.id.);//声明id
报税表持有人;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
Holder=null;
LayoutInflater充气机=(LayoutInflater)
mcontext.getSystemService(Context.LAYOUT\u充气机\u服务);
if(convertView==null){
convertView=充气机。充气(R.layout.chat\u listview\u layout\u屏幕,父项,false);
holder=设置属性(位置、视图);
convertView.setTag(支架);
}否则{
holder=(holder)convertView.getTag();
}
convertView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
点击(位置);
}
});
返回视图;
}
公共无效单击(整数位置){
Intent MINENT=新的Intent(mcontext,ChatViewBackgroundActivity.class);
minent.putExtra(“name”,mBeans.get(position.getOperator_name());
(聊天活动)mcontext.startActivityForResult(Minent,1);
}
}
谢谢你的回答。如果(convertView==null){convertView=inflater.inflate,我会更改代码,但不会更改执行过程(