Bạn có ứng dụng cần đọc mạng, một file
tài liệu txt online, trong lúc đó muốn hiện thông báo chờ tải để người dùng biết.
Ta sẽ dùng thread để hiện
ProgressDialog.
Tại class bất kỳ, khai báo một
textView và progressdialog trên dòng Override.
TextView t;
ProgressDialog mProgressDialog;
Trong file xml tạo một textView.
<TextView
android:id="@+id/te"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:text="@string/hello_world"
/>
Khỏi tạo dưới dòng setContentView.
t = (TextView) findViewById(R.id.te);
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("Loading, please wait...");
mProgressDialog.show();
Copy tiếp xuống dưới, tạo một thread để chờ.
new Thread() {
@Override
public void run() {
String path = "http://www.oracle.com/technetwork/java/readme-2-149793.txt";
URL u = null;
try {
u = new URL(path);
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.connect();
InputStream in = c.getInputStream();
final
ByteArrayOutputStream bo = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
in.read(buffer); // Read from
Buffer.
bo.write(buffer); // Write Into Buffer.
runOnUiThread(new Runnable() {
@Override
public void run() {
String ad=bo.toString();
t.setText(ad);
try {
bo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
});
} catch
(MalformedURLException e) {
e.printStackTrace();
} catch
(ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(mProgressDialog.isShowing())
{
mProgressDialog.dismiss();
}
}
}.start();
Cấp quyền internet cho ứng dụng trong
Androidmanifest.
<uses-permission android:name="android.permission.INTERNET"
/>
Chạy thử để thấy Dialog thông báo hiện
ra lúc đọc, đọc xong nó tự biến mất.
No comments:
Post a Comment