خواندن فایل 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 تشکر