Преглед изворни кода

1.完成RA Image Android上传列表视图。

Pen Li пре 8 година
родитељ
комит
d295ee66b8

+ 4 - 1
RA Image/app/src/main/AndroidManifest.xml

@@ -168,9 +168,12 @@
             android:theme="@style/Theme.AppCompat.Light" />
         <activity
             android:name=".Model.ManufactureListActivity"
-            android:theme="@style/Theme.AppCompat.Light"/>
+            android:theme="@style/Theme.AppCompat.Light" />
 
+        <activity android:name=".UploadList.UploadListActivity"
+            android:theme="@style/Theme.AppCompat.Light">
 
+        </activity>
     </application>
 
 </manifest>

+ 14 - 1
RA Image/app/src/main/java/com/usai/redant/raimage/MainActivity.java

@@ -15,6 +15,7 @@ import com.usai.redant.raimage.Model.ManufactureListActivity;
 import com.usai.redant.raimage.Model.ModelActivity;
 import com.usai.redant.raimage.POP.PopActivity;
 import com.usai.redant.raimage.PhotoList.PhotoListActivity;
+import com.usai.redant.raimage.UploadList.UploadListActivity;
 import com.usai.util.Crypto;
 import com.usai.util.MD5;
 import com.usai.util.Network;
@@ -602,7 +603,8 @@ public class MainActivity extends AppCompatActivity
 	public boolean onCreateOptionsMenu(Menu menu)
 	{
 		if (newVersion) {
-			return false;
+			getMenuInflater().inflate(R.menu.mode_menu, menu);
+			return true;
 		}
 		// Inflate the menu; this adds items to the action bar if it is present.
 		getMenuInflater().inflate(R.menu.main, menu);
@@ -859,6 +861,17 @@ public class MainActivity extends AppCompatActivity
 	public boolean onOptionsItemSelected(MenuItem item)
 	{
 		if (newVersion) {
+			switch (item.getItemId()) {
+				case R.id.upload_list_btn : {
+					Intent intent = new Intent(this, UploadListActivity.class);
+					startActivity(intent);
+				}
+				break;
+				case android.R.id.home: {
+					finish();
+				}
+				break;
+			}
 			return true;
 		}
 		// TODO Auto-generated method stub

+ 11 - 11
RA Image/app/src/main/java/com/usai/redant/raimage/Model/ModelActivity.java

@@ -30,15 +30,15 @@ public class ModelActivity extends MainActivity {
         super.onSaveInstanceState(outState);
     }
 
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-
-        switch (item.getItemId()) {
-            case android.R.id.home: {
-                finish();
-            }
-            break;
-        }
-        return true;
-    }
+//    @Override
+//    public boolean onOptionsItemSelected(MenuItem item) {
+//
+//        switch (item.getItemId()) {
+//            case android.R.id.home: {
+//                finish();
+//            }
+//            break;
+//        }
+//        return true;
+//    }
 }

+ 11 - 11
RA Image/app/src/main/java/com/usai/redant/raimage/POP/PopActivity.java

@@ -31,17 +31,17 @@ public class PopActivity extends MainActivity {
     }
 
 
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-
-        switch (item.getItemId()) {
-            case android.R.id.home: {
-                finish();
-            }
-            break;
-        }
-        return true;
-    }
+//    @Override
+//    public boolean onOptionsItemSelected(MenuItem item) {
+//
+//        switch (item.getItemId()) {
+//            case android.R.id.home: {
+//                finish();
+//            }
+//            break;
+//        }
+//        return true;
+//    }
 
     /**Method*/
 

+ 126 - 0
RA Image/app/src/main/java/com/usai/redant/raimage/UploadList/UploadListActivity.java

@@ -0,0 +1,126 @@
+package com.usai.redant.raimage.UploadList;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v4.content.LocalBroadcastManager;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+import com.usai.redant.raimage.R;
+
+import java.util.List;
+
+public class UploadListActivity extends AppCompatActivity {
+
+    private ListView uploadList;
+    private uploadAdapter adapter;
+
+    private LocalBroadcastManager broadcastManager;
+    private UploadBroadcastReceiver broadcastReceiver;
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_upload_list);
+
+        ActionBar mActionBar = getSupportActionBar();
+        mActionBar.setHomeButtonEnabled(true);
+        mActionBar.setDisplayHomeAsUpEnabled(true);
+        mActionBar.setTitle("RA Image");
+
+        // 注册广播接收
+        broadcastManager = LocalBroadcastManager.getInstance(this);
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction("");
+        broadcastReceiver = new UploadBroadcastReceiver();
+        broadcastManager.registerReceiver(broadcastReceiver,intentFilter);
+
+        // 初始化视图
+        uploadList = (ListView)findViewById(R.id.upload_list);
+
+        uploadList.setAdapter(adapter);
+
+
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case android.R.id.home: {
+                finish();
+            }
+            break;
+        }
+        return true;
+    }
+
+    private class uploadAdapter extends ArrayAdapter<Bundle> {
+        private int resourceId;
+        public uploadAdapter(Context ctx, int resourceID, List<Bundle> objects) {
+            super(ctx,resourceID,objects);
+            resourceId = resourceID;
+        }
+
+        @NonNull
+        @Override
+        public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
+
+            View cell;
+            ViewHolder holder;
+            if (convertView != null) {
+
+                cell = convertView;
+                holder = (ViewHolder)cell.getTag();
+
+            } else  {
+                cell = LayoutInflater.from(getContext()).inflate(resourceId,null);
+
+                holder = new ViewHolder();
+                holder.name_tv = (TextView)cell.findViewById(R.id.upload_name_tv);
+                holder.progressBar = (ProgressBar)cell.findViewById(R.id.upload_progressBar);
+                holder.state_tv = (TextView)cell.findViewById(R.id.upload_state_tv);
+                holder.progress_tv = (TextView)cell.findViewById(R.id.upload_progress_tv);
+                holder.err_tv = (TextView)cell.findViewById(R.id.upload_err_tv);
+
+                cell.setTag(holder);
+            }
+
+            return cell;
+        }
+
+        private class ViewHolder {
+            public TextView name_tv;
+            public ProgressBar progressBar;
+            public TextView state_tv;
+            public TextView progress_tv;
+            public TextView err_tv;
+        }
+    }
+
+    private class UploadBroadcastReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            int index = 0;
+            // item: Model数据
+            Object item = uploadList.getItemAtPosition(index);
+            int startShowIndex = uploadList.getFirstVisiblePosition();
+            int lastShowIndex = uploadList.getLastVisiblePosition();
+            if (index >= startShowIndex && index <= lastShowIndex) {
+                View cell = uploadList.getChildAt(index - startShowIndex);
+                uploadAdapter.ViewHolder holder= (uploadAdapter.ViewHolder)cell.getTag();
+            }
+        }
+    }
+}

+ 16 - 0
RA Image/app/src/main/res/layout/activity_upload_list.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.usai.redant.raimage.UploadList.UploadListActivity">
+
+    <ListView
+        android:id="@+id/upload_list"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        >
+
+    </ListView>
+
+</RelativeLayout>

+ 63 - 0
RA Image/app/src/main/res/layout/upload_list_cell.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent" android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/upload_name_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="10dp"
+        android:layout_marginLeft="10dp"
+        android:layout_marginTop="5dp"
+        android:layout_marginRight="10dp"
+        android:layout_marginEnd="10dp"
+        android:hint="QS885555464784613654"
+        />
+
+    <ProgressBar
+        android:id="@+id/upload_progressBar"
+        android:layout_width="match_parent"
+        android:layout_height="5dp"
+        android:layout_alignLeft="@id/upload_name_tv"
+        android:layout_marginTop="5dp"
+        android:layout_alignRight="@id/upload_name_tv"
+        style="@style/Widget.AppCompat.ProgressBar.Horizontal"
+        android:layout_below="@id/upload_name_tv"
+        android:max="100"
+        android:progress="50"
+        />
+
+    <TextView
+        android:id="@+id/upload_state_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/upload_progressBar"
+        android:layout_alignLeft="@id/upload_progressBar"
+        android:layout_marginTop="5dp"
+        android:layout_marginRight="10dp"
+        android:layout_marginEnd="10dp"
+        android:text="Waiting"
+        />
+    <TextView
+        android:id="@+id/upload_progress_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/upload_progressBar"
+        android:layout_alignTop="@id/upload_state_tv"
+        android:layout_alignRight="@id/upload_progressBar"
+        android:text="99.9%"
+        />
+
+    <TextView
+        android:id="@+id/upload_err_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/upload_state_tv"
+        android:layout_marginTop="5dp"
+        android:layout_alignLeft="@id/upload_state_tv"
+        android:layout_marginRight="10dp"
+        android:layout_marginEnd="10dp"
+        android:text="Error:"
+        />
+
+</RelativeLayout>

+ 14 - 0
RA Image/app/src/main/res/menu/mode_menu.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <item
+        android:id="@+id/upload_list_btn"
+        android:title="Upload List"
+        app:showAsAction="always"
+        >
+
+    </item>
+
+
+</menu>