Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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
Android listView的第一项未从自定义适配器加载完整数据';s的布局文件,但其余的工作正常_Android_Listview_Arraylist_Custom Adapter - Fatal编程技术网

Android listView的第一项未从自定义适配器加载完整数据';s的布局文件,但其余的工作正常

Android listView的第一项未从自定义适配器加载完整数据';s的布局文件,但其余的工作正常,android,listview,arraylist,custom-adapter,Android,Listview,Arraylist,Custom Adapter,listView的第一个项目不像其他两个项目那样显示,但是当单击第一个项目然后指向下一个页面时,整个内容都会显示出来 截图 这是要加载列表的活动 公共类FacultyViewNoticeActivity扩展AppCompativeActivity实现AdapterView.OnItemClickListener{ 私有列表视图列表视图; 私人数据库参考; 私人名单通知名单; 私人学院视障适应者攻击适应者; 私人对话; @凌驾 创建时受保护的void(Bundle savedInstanceSt

listView的第一个项目不像其他两个项目那样显示,但是当单击第一个项目然后指向下一个页面时,整个内容都会显示出来

截图

这是要加载列表的活动

公共类FacultyViewNoticeActivity扩展AppCompativeActivity实现AdapterView.OnItemClickListener{
私有列表视图列表视图;
私人数据库参考;
私人名单通知名单;
私人学院视障适应者攻击适应者;
私人对话;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u faculty\u view\u notice);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar\u FacultyViewNoticeActivity);
设置支持操作栏(工具栏);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
声明();
loadNoticeList();
setOnItemClickListener(this);
}
私人无效声明(){
listView=(listView)findViewById(R.id.listViewNotice\u FacultyViewNoticeActivity);
reference=FirebaseDatabase.getInstance().getReference();
noticesList=newarraylist();
pDialog=新建进度对话框(FacultyViewNoticeActivity.this);
}
私有void loadNoticeList(){
pDialog.setTitle(“搜索…”);
pDialog.show();
reference.child(“notice”).addValueEventListener(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
noticesList.clear();
for(DataSnapshot ps:DataSnapshot.getChildren()){
Notice n=ps.getValue(Notice.class);
Log.i(“CollegeDialog”,“Notice=“+n.getNotice()+”\nTitle=“+n.getTitle());
通知列表。添加(n);
}
assAdapter=新的FacultyViewNoticeAdapter(FacultyViewNoticeActivity.this,noticeList);
setAdapter(assAdapter);
pDialog.disclose();
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
pDialog.disclose();
}
});
}
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
Notice a=noticesList.get(i);
意向意向=新意向(FacultyViewNoticeActivity.this,FacultyViewNoticeDetailsActivity.class);
意向。额外(“数据”,a);
星触觉(意向);
}
}

活动\u教员\u视图\u notice.xml文件


这是它的适配器

公共类FacultyViewNoticeAdapter扩展了ArrayAdapter{
私人活动语境;
私人名单公告员;
私有静态int x=0;
公共FacultyViewNoticeAdapter(活动上下文、列表通知列表){
超级(上下文、右布局、布局、视图、通知、通知列表);
this.context=上下文;
this.noticeList=通知列表;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutInflater充气器=上下文。getLayoutInflater();
View listViewItem=充气机。充气(R.layout.layout\u View\u通知,父项,false);
TextView title=listViewItem.findViewById(R.id.title\u布局\u视图\u通知);
TextView date=listViewItem.findViewById(R.id.date\u layout\u view\u notices);
TextView notice=listViewItem.findViewById(R.id.notice\u layout\u view\u notices);
Notice noticeUpload=noticeList.get(位置);
if(noticeUpload!=null){
Log.i(“CollegeDialog”,String.valueOf(x));
title.setText(noticeUpload.getTitle());
notice.setText(noticeUpload.getNotice());
date.setText(noticeUpload.getD()+“-”+noticeUpload.getM()+“-”+noticeUpload.getY());
Log.i(“CollegeDialog”,“ADAPTER=“+title.getText().toString()+”\n“+notice.getText().toString()+”\n“+date.getText().toString());
x++;
}否则{
Log.i(“学院日记”,“空”);
}
返回listViewItem;
}
}

layout\u view\u notices.xml文件



您的第一件物品还可以。他就在actionBar后面

试着换一下水管

线性布局

相对论

到appBarLayout添加id字段 并添加到listview

android:layout_below="@+id/appBarLayoutId"
毕竟应该没问题

或添加到listview

topMargin=?属性/操作栏大小“


peter这两个组件都在线性布局中,所以为什么会发生这种情况我有点困惑,你能解释一下吗?我不确定,我没有使用AppBarLayout。但我认为行AppBarOverlayout中的问题现在更多的是在从relativelayout切换回linearlayout和“Clean Project”任务之后,现在它也可以与线性布局一起工作。。
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.collegecoder.collegediary.activity.FacultyViewNoticeActivity">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_FacultyViewNoticeActivity"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

<ListView
    android:id="@+id/listViewNotice_FacultyViewNoticeActivity"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
public class FacultyViewNoticeAdapter extends ArrayAdapter {
private Activity context;
private List<Notice> noticeList;
private static int x = 0;

public FacultyViewNoticeAdapter(Activity context, List<Notice> noticeList) {
    super(context, R.layout.layout_view_notices, noticeList);
    this.context = context;
    this.noticeList = noticeList;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = context.getLayoutInflater();
    View listViewItem = inflater.inflate(R.layout.layout_view_notices, parent, false);

    TextView title = listViewItem.findViewById(R.id.title_layout_view_notices);
    TextView date = listViewItem.findViewById(R.id.date_layout_view_notices);
    TextView notice = listViewItem.findViewById(R.id.notice_layout_view_notices);

    Notice noticeUpload = noticeList.get(position);

    if (noticeUpload != null) {
        Log.i("CollegeDiary", String.valueOf(x));
        title.setText(noticeUpload.getTitle());
        notice.setText(noticeUpload.getNotice());
        date.setText(noticeUpload.getD() + "-" + noticeUpload.getM() + "-" + noticeUpload.getY());
        Log.i("CollegeDiary", "ADAPTER = " + title.getText().toString() + "\n" + notice.getText().toString() + "\n" + date.getText().toString());
        x++;
    } else {
        Log.i("CollegeDiary", "null");
    }
    return listViewItem;
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp">

<TextView
    android:id="@+id/title_layout_view_notices"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="totle"
    android:textAlignment="center"
    android:textColor="@android:color/black"
    android:textSize="20sp" />

<TextView
    android:id="@+id/date_layout_view_notices"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Date" />

<TextView
    android:id="@+id/notice_layout_view_notices"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:maxLines="1"
    android:text="description"
    android:textSize="16sp" />
android:layout_below="@+id/appBarLayoutId"