خواندن فایل Notepad از یک آدرس و نمایش آن در TextView
سه شنبه 10 مرداد 1396در این مقاله قصد داریم یک فایل Notepad را که در یک آدرس در نت بار گذاری شده با زدن یک کلیک خوانده شود و متن مورد نظر را در یک textview نمایش دهیم معمولا این را در اپلیکیشن هایی که نیاز به آدرس اینترنتی دارد نمایش می دهیم.
این متن مورد نظر در آدرس مورد نظر ذخیره می شود و هر موقع بخواهید دنبال آدرس رفته و متن در یک textview بار گذاری و نمایش داده می شود برای این کار باید یک مجوز دسترسی داده شود.
<uses-permission android:name="android.permission.INTERNET" />
کلاس مورد نظر به صورت زیر می باشد
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.os.AsyncTask;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
String TextFileURL = "http://www.android-examples.com/wp-content/uploads/2016/11/sample-text-file.txt" ;
TextView textView ;
Button button ;
URL url ;
String TextHolder = "" , TextHolder2 = "";
BufferedReader bufferReader ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.textView);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new GetNotePadFileFromServer().execute();
}
});
}
public class GetNotePadFileFromServer extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
try {
url = new URL(TextFileURL);
bufferReader = new BufferedReader(new InputStreamReader(url.openStream()));
while ((TextHolder2 = bufferReader.readLine()) != null) {
TextHolder += TextHolder2;
}
bufferReader.close();
} catch (MalformedURLException malformedURLException) {
// TODO Auto-generated catch block
malformedURLException.printStackTrace();
TextHolder = malformedURLException.toString();
} catch (IOException iOException) {
// TODO Auto-generated catch block
iOException.printStackTrace();
TextHolder = iOException.toString();
}
return null;
}
@Override
protected void onPostExecute(Void finalTextHolder) {
textView.setText(TextHolder);
super.onPostExecute(finalTextHolder);
}
}
}
لایه ی xml به صورت زیر است
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.android_examples.readtextfromurl_android_examplescom.MainActivity"
android:background="#FFF8E1">
<Button
android:text="Click here to show online Notepad file into textview "
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/button" />
<TextView
android:text="Your Text File text disply here"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:textColor="#000000"
android:textSize="20dp"
android:gravity="center"
android:layout_marginBottom="74dp"
android:padding="5dp"
android:layout_above="@+id/button"
android:layout_centerHorizontal="true" />
</RelativeLayout>
کلاس android manifest در آخر به صورت زیر خواهد بود
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android_examples.readtextfromurl_android_examplescom">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
خروجی کار به صورت زیر است:


- Android
- 2k بازدید
- 0 تشکر