Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中使用阵列适配器?_Java_Android - Fatal编程技术网

Java 如何在Android中使用阵列适配器?

Java 如何在Android中使用阵列适配器?,java,android,Java,Android,我需要将姓名打印到listview。我设置了eWebything,但ArrayAdapter的代码是底层的。我看不出我的错误。你能帮我吗 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment

我需要将姓名打印到listview。我设置了eWebything,但ArrayAdapter的代码是底层的。我看不出我的错误。你能帮我吗

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_schedule, container, false);
    schedule_list = (ListView) view.findViewById(R.id.schedule_list);
    String[] menuItems = {"Serdar","Yazıcı"};
    //String[] listRow = new String[]{"photo","name","city"};
    int[] showList = new int[]{R.id.list_photo,R.id.list_name,R.id.list_city};
    ArrayAdapter<String> listViewAdapter = new ArrayAdapter<String>(
            getActivity(),
            R.layout.listview_row,
            showList,
            menuItems);
    schedule_list.setAdapter(listViewAdapter);
    return view;
}
@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图=充气机。充气(R.layout.fragment\u明细表,容器,错误);
schedule\u list=(ListView)view.findViewById(R.id.schedule\u list);
字符串[]menuItems={“Serdar”,“Yazıcı”};
//String[]listRow=新字符串[]{“照片”、“姓名”、“城市”};
int[]showList=newint[]{R.id.list_photo,R.id.list_name,R.id.list_city};
ArrayAdapter listViewAdapter=新的ArrayAdapter(
getActivity(),
R.layout.listview_行,
展示名单,
菜单项);
附表_list.setAdapter(listViewAdapter);
返回视图;
}

您应该尝试使用SimpleAdapter而不是ArrayAdapter!使用以下示例代码创建自定义阵列适配器:)

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;



import java.util.ArrayList;

import de.hdodenhof.circleimageview.CircleImageView;

   /**
    * Created by Zohaib Hassan on 11/28/2016.
    */

    public class InboxAdapter extends ArrayAdapter<InboxRow> {

   ArrayList<InboxRow> items;
    Context context;


    public InboxAdapter(Context context, int resource, ArrayList<InboxRow> 
    items) {
   super(context , resource , items);
   this.context = context;
    this.items = items;

   }



   @Override

 public View getView(int position, View convertView, ViewGroup parent) {

// Get the data item for this position

InboxRow rowItem = getItem(position);

// Check if an existing view is being reused, otherwise inflate the view

ViewHolder viewHolder; // view lookup cache stored in tag

if (convertView == null) {

    viewHolder = new ViewHolder();

    LayoutInflater inflater = LayoutInflater.from(context);

    convertView = inflater.inflate(R.layout.inbox_row, null);

    viewHolder.tvUserName = (TextView) convertView.findViewById(R.id.tv_user_name_inbox);
    viewHolder.tvMessage = (TextView) convertView.findViewById(R.id.tv_message_inbox);
    viewHolder.tvTimeCount = (TextView) convertView.findViewById(R.id.tv_time_count_inbox);
    viewHolder.userProfilePic = (CircleImageView) convertView.findViewById(R.id.inbox_profile_image);

    convertView.setTag(viewHolder);

} else {

    viewHolder = (ViewHolder) convertView.getTag();

}


/*CircleImageView ivProfileImage Set Background with Picasso*/

return convertView;

   }

   private static class ViewHolder {

     TextView tvUserName , tvMessage , tvTimeCount;
     CircleImageView userProfilePic;

 }

 }
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.TextView;
导入java.util.ArrayList;
导入de.hdodenhof.circleimageview.circleimageview;
/**
*由Zohaib Hassan于2016年11月28日创建。
*/
公共类InboxAdapter扩展了ArrayAdapter{
数组列表项;
语境;
公共InboxAdapter(上下文、int资源、ArrayList
(项目){
超级(上下文、资源、项目);
this.context=上下文;
这个项目=项目;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//获取此职位的数据项
InboxRow rowItem=getItem(位置);
//检查是否正在重用现有视图,否则会膨胀视图
ViewHolder ViewHolder;//存储在标记中的视图查找缓存
if(convertView==null){
viewHolder=新的viewHolder();
LayoutFlater充气机=LayoutFlater.from(上下文);
convertView=充气机。充气(R.layout.inbox\u行,空);
viewHolder.tvUserName=(TextView)convertView.findViewById(R.id.tv\u user\u name\u收件箱);
viewHolder.tvMessage=(TextView)convertView.findviewbyd(R.id.tv\u message\u收件箱);
viewHolder.tvTimeCount=(TextView)convertView.findViewById(R.id.tv\u time\u count\u收件箱);
viewHolder.userProfilePic=(CircleImageView)convertView.findViewById(R.id.inbox\u profile\u image);
convertView.setTag(viewHolder);
}否则{
viewHolder=(viewHolder)convertView.getTag();
}
/*CircleImageView IVProfile毕加索背景图像集*/
返回视图;
}
私有静态类视图持有者{
text查看tvUserName、tvMessage、tvTimeCount;
CircleImageView用户配置文件PIC;
}
}
在活动类中,使用下面给出的示例代码:

 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v4.app.Fragment;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ListView;



 import java.util.ArrayList;

 /**
 * Created by Zohaib Hassan on 11/28/2016.
  */

 public class InboxScreen extends Fragment {

ListView lvInbox;
ArrayList<InboxRow> inboxList;
InboxAdapter adapter;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.inbox_screen,container,false);


    lvInbox = (ListView) v.findViewById(R.id.lv_inbox);

    inboxList = new ArrayList<InboxRow>();

    for (int a = 0 ; a < 20 ; a++)
    {
        inboxList.add(new InboxRow());
    }


    adapter = new InboxAdapter(getActivity() , R.layout.inbox_row , inboxList);
    lvInbox.setAdapter(adapter);

    return v;
}
}
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.v4.app.Fragment;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ListView;
导入java.util.ArrayList;
/**
*由Zohaib Hassan于2016年11月28日创建。
*/
公共类InboxScreen扩展片段{
列表视图和收件箱;
ArrayList inboxList;
内置适配器;
@可空
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图v=充气机。充气(右侧布局。收件箱屏幕,容器,错误);
lvInbox=(列表视图)v.findViewById(R.id.lv_收件箱);
inboxList=新的ArrayList();
对于(int a=0;a<20;a++)
{
添加(新的InboxRow());
}
adapter=新的InboxAdapter(getActivity(),R.layout.inbox_行,inboxList);
lvInbox.setAdapter(适配器);
返回v;
}
}

不在ArrayAdapter类中调用ListView,而是在MainActivity中调用ListVew和new ArrayAdapter。
然后在创建时将适配器设置为ListView。

您面临什么问题?