Android 片段列表视图中的自定义适配器
我正在尝试向片段中的listview添加自定义适配器。它运行正常,但没有显示任何片段。我试过很多方法,但都没能奏效。任何帮助都会很好。提前谢谢。这是我的密码: Fragment.xmlAndroid 片段列表视图中的自定义适配器,android,listview,android-fragments,Android,Listview,Android Fragments,我正在尝试向片段中的listview添加自定义适配器。它运行正常,但没有显示任何片段。我试过很多方法,但都没能奏效。任何帮助都会很好。提前谢谢。这是我的密码: Fragment.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/UniFeeList"
android:layout_centerHorizontal="true"
android:clickable="true"
>
</ListView>
<android.support.design.widget.FloatingActionButton
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_input_add"
android:id="@+id/addQuestion"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_margin="10dip"
/>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
Fragment.Java
public class UniFeedFragment extends Fragment {
ListView uniFeedListview;
FloatingActionButton askQuestion;
String stdEmail, UniEmail;
TextView tv;
Post post;
String date,time;
ListView UniFeedList;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup view = (ViewGroup) inflater.inflate(R.layout.unifeedfragment, container, false);
//Getting Time
DateFormat df = new SimpleDateFormat("HH:mm");
time = df.format(Calendar.getInstance().getTime());
//Getting Date
DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
Date today = new Date();
date = dateFormatter.format(today);
//Getting data from news feed search bar
UniFeed uniFeed = (UniFeed) getActivity();
stdEmail = uniFeed.stdEmail;
UniEmail = uniFeed.uni.getEmail();
//Setting Listview
UniFeedList = (ListView) view.findViewById(R.id.UniFeeList);
final ArrayList<Post> postArray = new ArrayList<Post>();
PostListAdapter PostList = new PostListAdapter(this.getActivity(), R.layout.activity_uni_feed ,postArray);
UniFeedList.setAdapter(PostList);
return view;
}
public class PostListAdapter extends BaseAdapter {
Context context = null;
ArrayList<Post> postData = new ArrayList<>();
LayoutInflater inflater;
public PostListAdapter(Context context, int activity_uni_feed, ArrayList<Post> postData){
this.context = context;
this.postData = postData;
}
@Override
public int getCount() {
return postData.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView= inflater.inflate(R.layout.unifeedpost, parent, false);
return convertView;
} }
公共类UniFeedFragment扩展了片段{
ListView-uniFeedListview;
浮动操作按钮询问问题;
字符串stdEmail,UniEmail;
文本视图电视;
岗位;
字符串日期、时间;
ListView-UniFeedList;
@可空
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图组视图=(视图组)充气器。充气(R.layout.unifeedfragment,container,false);
//获得时间
DateFormat df=新的SimpleDataFormat(“HH:mm”);
time=df.format(Calendar.getInstance().getTime());
//约会
DateFormat dateFormatter=新的SimpleDateFormat(“yyyy-MM-dd”);
今天日期=新日期();
日期=dateFormatter.format(今天);
//从新闻提要搜索栏获取数据
UniFeed UniFeed=(UniFeed)getActivity();
stdEmail=uniFeed.stdEmail;
UniEmail=uniFeed.uni.getEmail();
//设置Listview
UniFeedList=(ListView)view.findViewById(R.id.UniFeeList);
最终ArrayList postArray=新ArrayList();
PostListAdapter PostList=新的PostListAdapter(this.getActivity(),R.layout.activity\u uni\u提要,postArray);
setAdapter(PostList);
返回视图;
}
PostListAdapter.java
public class UniFeedFragment extends Fragment {
ListView uniFeedListview;
FloatingActionButton askQuestion;
String stdEmail, UniEmail;
TextView tv;
Post post;
String date,time;
ListView UniFeedList;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup view = (ViewGroup) inflater.inflate(R.layout.unifeedfragment, container, false);
//Getting Time
DateFormat df = new SimpleDateFormat("HH:mm");
time = df.format(Calendar.getInstance().getTime());
//Getting Date
DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
Date today = new Date();
date = dateFormatter.format(today);
//Getting data from news feed search bar
UniFeed uniFeed = (UniFeed) getActivity();
stdEmail = uniFeed.stdEmail;
UniEmail = uniFeed.uni.getEmail();
//Setting Listview
UniFeedList = (ListView) view.findViewById(R.id.UniFeeList);
final ArrayList<Post> postArray = new ArrayList<Post>();
PostListAdapter PostList = new PostListAdapter(this.getActivity(), R.layout.activity_uni_feed ,postArray);
UniFeedList.setAdapter(PostList);
return view;
}
public class PostListAdapter extends BaseAdapter {
Context context = null;
ArrayList<Post> postData = new ArrayList<>();
LayoutInflater inflater;
public PostListAdapter(Context context, int activity_uni_feed, ArrayList<Post> postData){
this.context = context;
this.postData = postData;
}
@Override
public int getCount() {
return postData.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView= inflater.inflate(R.layout.unifeedpost, parent, false);
return convertView;
} }
公共类PostListAdapter扩展了BaseAdapter{
Context=null;
ArrayList postData=新的ArrayList();
充气机;
公共PostListAdapter(上下文上下文、int-activity\u-uni\u-feed、ArrayList-postData){
this.context=上下文;
this.postData=postData;
}
@凌驾
public int getCount(){
返回postData.size();
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.unifeedpost,父项,false);
返回视图;
} }
unifeedPost.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/UniFeeList"
android:layout_centerHorizontal="true"
android:clickable="true"
>
</ListView>
<android.support.design.widget.FloatingActionButton
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_input_add"
android:id="@+id/addQuestion"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_margin="10dip"
/>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
我看到您的
postArray
不包含任何数据,因此您的ListView
将有0个项我正在使用以下代码在getView()方法中设置数据:TextView名称=(TextView)convertView.findViewById(R.id.stdName);TextView日期时间=(TextView)convertView.findViewById(R.id.time);TextView postContent=(TextView)convertView.findViewById(R.id.postContent);Name.setText(post.getStdName());DateTime.setText(post.getTime()+“”+post.getDate());postContent.setText(post.getContent());在getView中,它仍然不起作用,您返回的是一个空白布局。我看到您的postArray
不包含任何数据,因此您ListView
将有0项。我正在使用以下代码在getView()方法中设置数据:TextView名称=(TextView)convertView.findViewById(R.id.stdName);TextView日期时间=(TextView)convertView.findViewById(R.id.time);TextView postContent=(TextView)convertView.findViewById(R.id.postContent);Name.setText(post.getStdName());DateTime.setText(post.getTime()+“”+post.getDate());postContent.setText(post.getContent());在getView中它仍然不起作用,您返回的是一个空白布局。