Java 从数据库加载数据时添加进度条

Java 从数据库加载数据时添加进度条,java,android,progress-bar,android-volley,Java,Android,Progress Bar,Android Volley,我使用volley库从数据库中获取数据,我使用以下代码 public class R_arabic extends AppCompatActivity { RequestQueue requestQueue; ListView listView; ArrayList<listitem_gib> listitems = new ArrayList<listitem_gib>(); String name, img, url, num; @Override protec

我使用volley库从数据库中获取数据,我使用以下代码

public class R_arabic extends AppCompatActivity {

RequestQueue requestQueue;
ListView listView;

ArrayList<listitem_gib> listitems = new ArrayList<listitem_gib>();
String name, img, url, num;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_r_arabic);

    listView = (ListView) findViewById(R.id.listView);
    TextView textView_Title = (TextView) findViewById(R.id.textView2);

    Intent intent = getIntent();
    String story_type = intent.getStringExtra("story_type");

    switch (story_type) {
        case "arabic":
            textView_Title.setText("arabic");
            break;
        case "romance":
            textView_Title.setText("romance");
            break;
        case "motrgm":
            textView_Title.setText("motrgm");
            break;
        case "ro3b":
            textView_Title.setText("ro3b");
            break;
        case "siasa":
            textView_Title.setText("siasa");
            break;

    }

    String url = "http://grassyhat.com/android/" + story_type + ".php";


    requestQueue = Volley.newRequestQueue(this);

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url,
            new Response.Listener<JSONObject>() {
                public void onResponse(JSONObject response) {

                    try {
                        JSONArray jsonArray = response.getJSONArray("all");
                        for (int i = 0; i < jsonArray.length(); i++) {
                            JSONObject respons = jsonArray.getJSONObject(i);
                            String id = respons.getString("id");
                            String name = respons.getString("name");
                            String img = respons.getString("img");
                            String url = respons.getString("url");
                            String num = respons.getString("num");
                            listitems.add(new listitem_gib(id, name, img, url, num));

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                    listAllItme();
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("VOLLEY", "ERROR");
        }
    }

    );
    requestQueue.add(jsonObjectRequest);

}


public void listAllItme() {
    ListAdapter lA = new listAdapter(listitems);
    listView.setAdapter(lA);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            CheckInternetConnection cic = new CheckInternetConnection(getApplicationContext());
            Boolean Ch = cic.isConnectingToInternet();
            if (!Ch) {
                Toast.makeText(R_arabic.this, "no connection", Toast.LENGTH_LONG).show();
            } else {
                Intent open = new Intent(R_arabic.this, rewaya_show.class);
                open.putExtra("name", listitems.get(position).name);
                open.putExtra("url", listitems.get(position).url);
                open.putExtra("img", listitems.get(position).img);
                open.putExtra("num", listitems.get(position).num);

                startActivity(open);

                showad++;
                if (showad >= 5) {
                    showad = 0;
                    if (mInterstitialAd.isLoaded()) {
                        mInterstitialAd.show();
                    }
                }
            }
        }
    });

}



class listAdapter extends BaseAdapter {
    ArrayList<listitem_gib> lista = new ArrayList<listitem_gib>();

    public listAdapter(ArrayList<listitem_gib> lista) {
        this.lista = lista;
    }

    @Override
    public int getCount() {
        return lista.size();
    }

    @Override
    public Object getItem(int position) {
        return lista.get(position).name;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        LayoutInflater layoutInflater = getLayoutInflater();
        View view = layoutInflater.inflate(R.layout.row_item_gib, null);

        TextView name = (TextView) view.findViewById(R.id.textView_gib);
        ImageView img = (ImageView) view.findViewById(R.id.imageView_gib);
        TextView num = (TextView) view.findViewById(R.id.textView_gib2);


        name.setText(lista.get(position).name);
        num.setText(lista.get(position).num);

        Picasso.with(R_arabic.this).load("http://grassyhat.com/android/image/" + lista.get(position).img).into(img);


        return view;
    }
}
public class R_阿拉伯语活动{
请求队列请求队列;
列表视图列表视图;
ArrayList listitems=新的ArrayList();
字符串名称,img,url,num;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_R_阿拉伯语);
listView=(listView)findViewById(R.id.listView);
TextView TextView_Title=(TextView)findViewById(R.id.textView2);
Intent=getIntent();
String story_type=intent.getStringExtra(“story_type”);
开关(层叠式){
“阿拉伯文”一案:
textView_Title.setText(“阿拉伯语”);
打破
案例“浪漫”:
textView_Title.setText(“浪漫”);
打破
案例“motrgm”:
textView_Title.setText(“motrgm”);
打破
案例“ro3b”:
textView_Title.setText(“ro3b”);
打破
“siasa”案:
textView_Title.setText(“siasa”);
打破
}
字符串url=”http://grassyhat.com/android/“+story_type+”.php”;
requestQueue=Volley.newRequestQueue(this);
JsonObjectRequest JsonObjectRequest=新的JsonObjectRequest(Request.Method.GET,url,
新的Response.Listener(){
公共void onResponse(JSONObject响应){
试一试{
JSONArray JSONArray=response.getJSONArray(“全部”);
for(int i=0;i=5){
showad=0;
if(minterstitalad.isload()){
minterstitalad.show();
}
}
}
}
});
}
类listAdapter扩展了BaseAdapter{
ArrayList lista=新的ArrayList();
公共listAdapter(ArrayList lista){
this.lista=lista;
}
@凌驾
public int getCount(){
返回lista.size();
}
@凌驾
公共对象getItem(int位置){
返回lista.get(position).name;
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
LayoutInflater LayoutInflater=getLayoutInflater();
视图=布局更平坦。充气(R.layout.row\U item\U gib,空);
TextView name=(TextView)view.findViewById(R.id.TextView\u gib);
ImageView img=(ImageView)view.findViewById(R.id.ImageView\u gib);
TextView num=(TextView)view.findViewById(R.id.TextView_-gib2);
name.setText(lista.get(position.name));
num.setText(lista.get(position.num));
毕加索.with(R_阿拉伯语.this).load(“http://grassyhat.com/android/image/“+lista.get(position.img).into(img);
返回视图;
}
}
我想在加载数据时添加进度条,以避免空白页

对不起,我是android新手,我在谷歌上搜索了一下,没有得到有用的答案

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.kamal.ahmed.rewaya.R_arabic"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:background="@drawable/bg"
    tools:showIn="@layout/app_bar_r_arabic">

<LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/adView">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="40sp"
            android:textStyle="bold"
            android:textColor="#e873400c"
            android:layout_gravity="center"
            android:id="@+id/textView2" />

        <ListView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/listView"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:divider="@drawable/div1"
            android:dividerHeight="35dp" />

    </LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/progress_layout"
    android:visibility="gone">

    <ProgressBar
        android:id="@+id/progress_bar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="100dp"
        android:layout_marginBottom="60dp"
        android:layout_weight="1"/>

    <TextView
        android:text="Download"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progress_txt"
        android:textSize="30sp"
        android:textStyle="bold"
        android:textColor="#e873400c"
        android:layout_gravity="center"
        android:layout_marginRight="90dp"
        android:layout_marginBottom="60dp"
        android:layout_weight="1" />

</LinearLayout>


活动中添加
progressBar
\u r\u阿拉伯语

<ProgressBar
    android:id="@+id/progress_bar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
然后在
onResponse(jsonobjectresponse)
方法中添加以下行

progressBar.setVisibility(View.GONE)
progress_layout.setVisibility(View.GONE)
编辑

使您的
线性布局在xml中可见

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/progress_layout"
    android:visibility="visible">

    <ProgressBar
        android:id="@+id/progress_bar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="100dp"
        android:layout_marginBottom="60dp"
        android:layout_weight="1"/>

    <TextView
        android:text="Download"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progress_txt"
        android:textSize="30sp"
        android:textStyle="bold"
        android:textColor="#e873400c"
        android:layout_gravity="center"
        android:layout_marginRight="90dp"
        android:layout_marginBottom="60dp"
        android:layout_weight="1" />

</LinearLayout>

在您的
活动中添加
progressBar

<ProgressBar
    android:id="@+id/progress_bar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
然后在
onResponse(jsonobjectresponse)
方法中添加以下行

progressBar.setVisibility(View.GONE)
progress_layout.setVisibility(View.GONE)
编辑

使您的
线性布局在xml中可见

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/progress_layout"
    android:visibility="visible">

    <ProgressBar
        android:id="@+id/progress_bar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="100dp"
        android:layout_marginBottom="60dp"
        android:layout_weight="1"/>

    <TextView
        android:text="Download"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progress_txt"
        android:textSize="30sp"
        android:textStyle="bold"
        android:textColor="#e873400c"
        android:layout_gravity="center"
        android:layout_marginRight="90dp"
        android:layout_marginBottom="60dp"
        android:layout_weight="1" />

</LinearLayout>

谢谢,效果很好,但我可以用这个进度条添加文本吗?是的。使用
线性布局
并在其中添加
进度条
文本视图
,而不是制作
进度条
视图。不见了
使
线性布局
可见性
不见了
谢谢,但我在行动中遇到了问题我添加了listview是否可以在listview上方显示线性布局