gpt4 book ai didi

android - 当 ListView 为空时,SetEmptyView 不显示文本和按钮

转载 作者:行者123 更新时间:2023-11-29 15:50:41 25 4
gpt4 key购买 nike

这是我的实际代码
我已经在 AsyncTask

上定义了 setEmptyview

DepartureFragmentInter.java

package com.trust.flightboard.fragment;

import java.util.ArrayList;

import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.DatePicker;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.trust.flightboard.R;
import com.trust.flightboard.adapter.DepartureAdapter;
import com.trust.flightboard.http.DepartureConnection;
import com.trust.flightboard.model.Departure;
import com.trust.flightboard.ui.DepartureDetailActivity;

public class DepartureFragmentInter extends Fragment implements
SwipeRefreshLayout.OnRefreshListener {
private DepartureAdapter mAdapter;
private ListView mListview;
private TextView mDate,flight,destination,time,gate;
ArrayList<Departure> dList = new ArrayList<Departure>();
private static int REFRESH_TIME_IN_SECONDS = 5;
public SwipeRefreshLayout swipeRefreshLayout;
DepartureConnection rest;
String airport;

public static DepartureFragmentInter newInstance() {
return new DepartureFragmentInter();
}

@Override
public void onCreate(Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup
container,Bundle savedInstanceState) {

View viewroot = inflater.inflate(R.layout.departure_activity,container, false);

mListview = (ListView) viewroot.findViewById(R.id.listview_maskapai);
mDate = (TextView) viewroot.findViewById(R.id.datetime);
swipeRefreshLayout = (SwipeRefreshLayout);
viewroot.findViewById(R.id.lySwipeRefresh);

flight = (TextView) viewroot.findViewById(R.id.codejudul);
destination = (TextView) viewroot.findViewById(R.id.Bandarajudul);
time = (TextView) viewroot.findViewById(R.id.Timejudul);
gate = (TextView) viewroot.findViewById(R.id.Gatejudul);

airport = getArguments().getString("airport");
Toast.makeText(getActivity(), airport, Toast.LENGTH_LONG).show();

Typeface typeFace =
Typeface.createFromAsset(getActivity().getAssets(),
"HELVETICANEUELTPRO-BD_0.OTF");
setTypeFace(typeFace);

mAdapter = new DepartureAdapter(getActivity());
rest = new DepartureConnection(getActivity());
mListview.setOnScrollListener(new OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int
scrollState) {
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
boolean enable = false;
if (mListview != null && mListview.getChildCount() > 0) {
// check if the first item of the list is visible
boolean firstItemVisible =
mListview.getFirstVisiblePosition() == 0;
// check if the top of the first item is visible
boolean topOfFirstItemVisible =
mListview.getChildAt(0).getTop() == 0;
// enabling or disabling the refresh layout
enable = firstItemVisible && topOfFirstItemVisible;
}
swipeRefreshLayout.setEnabled(enable);
}
});

initUI();

new setList().execute();

mListview.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View view, int
position, long id) {

Intent in = new
Intent(getActivity(),DepartureDetailActivity.class);

in.putExtra("code", dList.get(position).code_departure);
in.putExtra("airport",dList.get(position).airport);
in.putExtra("time",dList.get(position).time);
in.putExtra("gate",dList.get(position).gate);
in.putExtra("city",dList.get(position).airportcity);

startActivityForResult(in, 100);

getActivity().overridePendingTransition(R.anim.left_in,
R.anim.left_out);
}
});

return viewroot;

}
class setList extends AsyncTask<String, String, String>{
ProgressDialog pDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("Please Wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
String result = "error";

try {
dList = rest.getAirport(airport,"Domestic");
result = "Ok";
} catch (Exception e) {

e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
pDialog.dismiss();
mAdapter.setArray(dList);
mListview.setEmptyView(getActivity().
findViewById(R.id.emptyElement));
mListview.setAdapter(mAdapter);


}
}

private void initUI() {

swipeRefreshLayout.setOnRefreshListener(this);
swipeRefreshLayout.setColorScheme(android.R.color.black,
android.R.color.white,
android.R.color.black, android.R.color.white);

}

@Override
public void onRefresh() {
// TODO Auto-generated method stub
Log.d("cek", "onRefresh SwipeRefreshLayout");
new setList().execute();

new Handler().postDelayed(new Runnable() {
@Override
public void run() {
stopSwipeRefresh();
}
}, REFRESH_TIME_IN_SECONDS * 1000);
}

private void stopSwipeRefresh() {
swipeRefreshLayout.setRefreshing(false);
}

class mDateSetListener implements DatePickerDialog.OnDateSetListener {

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
// getCalender();

int mYear = year;
int mMonth = monthOfYear;
int mDay = dayOfMonth;


}
}
private void setTypeFace(Typeface typeFace) {
flight.setTypeface(typeFace);
destination.setTypeface(typeFace);
time.setTypeface(typeFace);
gate.setTypeface(typeFace);
}
}

这是我的departure_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_frame2"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg" >

<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/lySwipeRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/datetime"
android:layout_below="@+id/rel1" >

<ListView
android:id="@+id/listview_maskapai"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/bg"
android:cacheColorHint="@android:color/transparent"
android:divider="@color/bg_separator"
android:dividerHeight="1dp"
android:paddingLeft="8dp"
android:paddingRight="8dp" />
</android.support.v4.widget.SwipeRefreshLayout>

<RelativeLayout
android:id="@+id/rel1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/text_color_white"
android:paddingBottom="@dimen/margin_medium" >

<LinearLayout
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/margin_medium"
android:layout_marginRight="@dimen/margin_medium"
android:layout_marginTop="@dimen/margin_small"
android:orientation="horizontal"
android:paddingLeft="8dp"
android:paddingRight="8dp" >

<TextView
android:id="@+id/codejudul"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="15"
android:text="FLIGHT"
android:textColor="#59000000"
android:textSize="@dimen/text_size_medium" />

<TextView
android:id="@+id/Bandarajudul"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="25"
android:text="DEST"
android:textColor="#59000000"
android:textSize="@dimen/text_size_medium" />

<TextView
android:id="@+id/Timejudul"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="13"
android:text="TIME"
android:textColor="#59000000"
android:textSize="@dimen/text_size_medium" />

<TextView
android:id="@+id/Gatejudul"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="9"
android:text="GATE"
android:textColor="#59000000"
android:textSize="@dimen/text_size_medium" />
</LinearLayout>
</RelativeLayout>

<RelativeLayout
android:id="@+id/rel2"
android:layout_width="match_parent"
android:layout_height="8dp"
android:layout_below="@+id/rel1"
android:background="@drawable/ic_shd_tab" >
</RelativeLayout>

<FrameLayout
android:id="@+id/emptyElement"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone" >

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<TextView
android:id="@+id/emptytext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="@string/emptytext"
android:textColor="@color/text_color_white" />

<Button
android:id="@+id/emptybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/emptytext"
android:layout_centerHorizontal="true"
android:text="RELOAD" />
</RelativeLayout>
</FrameLayout>
</RelativeLayout>

</FrameLayout>

当我加载 ListView 时,包含零记录的空 ListView 未显示
任何帮助将不胜感激

最佳答案

好吧,我写的很简单,它会帮助你

覆盖 onContentChanged() 方法

如下所示:

@Override
public void onContentChanged() {
super.onContentChanged();
// write you code here, when list view empty.
}

关于android - 当 ListView 为空时,SetEmptyView 不显示文本和按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30160818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com