رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

استفاده فایل txt فارسی در textview


پست های پیشنهاد شده

سلام

از مدیریت سایت و سایر دوستان خواهش می کنم راهنماییم کنن که فایل تکست "فارسی" رو تو متن تکست ویوم استفاده کنم، برای متون انگلیسی مشکلی نیست اما برای فارسی به جای متن داخل فایل شکل ناشناخته می ذاره

خیلی خیلی برام مهمه


دستوری که برای استفاده از متن تکست استفاده کردم:

public class QuizHelpActivity extends Activity {//  private static final String DEBUG_TAG = null;private static final String DEBUG_TAG = null;/** Called when the activity is first created. */   public void onCreate(Bundle savedInstanceState) {       super.onCreate(savedInstanceState);       setContentView(R.layout.help);     //  final String GAME_PREFERENCES = "GamePrefs";       InputStream iFile = getResources().openRawResource(R.raw.index);       try {           TextView helpText = (TextView) findViewById(R.id.TextView_HelpText);           String strFile = inputStreamToString(iFile);           helpText.setText(strFile);       } catch (Exception e) {           Log.e(DEBUG_TAG, "InputStreamToString failure", e);       }   }   public String inputStreamToString(InputStream is) throws IOException {       StringBuffer sBuffer = new StringBuffer();       DataInputStream dataIO = new DataInputStream(is);       String strLine = null;       while ((strLine = dataIO.readLine()) != null) {           sBuffer.append(strLine + "\n");       }       dataIO.close();       is.close();       return sBuffer.toString();   }

و اینم نتیجه :

53775920111599534516.jpg

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برای اینکار باید فایل رو UTF-8 باز کنید تا متن درست نمایش داده شود.

[shcode=java]public byte[] getResource(int id, Context context) throws IOException {

    Resources resources = context.getResources();

    InputStream is = resources.openRawResource(id);

    ByteArrayOutputStream bout = new ByteArrayOutputStream();

    byte[] readBuffer = new byte[4 * 1024];

    try {

        int read;

        do {

            read = is.read(readBuffer, 0, readBuffer.length);

            if(read == -1) {

                break;

            }

            bout.write(readBuffer, 0, read);

        } while(true);

        return bout.toByteArray();

    } finally {

        is.close();

    }

}

    // reads a string resource

public String getStringResource(int id, Charset encoding) throws IOException {

    return new String(getResource(id, getContext()), encoding);

}

    // reads an UTF-8 string resource

public String getStringResource(int id) throws IOException {

    return new String(getResource(id, getContext()), Charset.forName("UTF-8"));

}[/shcode]

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برای اینکار باید فایل رو UTF-8 باز کنید تا متن درست نمایش داده شود.

[shcode=java]public byte[] getResource(int id, Context context) throws IOException {

    Resources resources = context.getResources();

    InputStream is = resources.openRawResource(id);

    ByteArrayOutputStream bout = new ByteArrayOutputStream();

    byte[] readBuffer = new byte[4 * 1024];

    try {

        int read;

        do {

            read = is.read(readBuffer, 0, readBuffer.length);

            if(read == -1) {

                break;

            }

            bout.write(readBuffer, 0, read);

        } while(true);

        return bout.toByteArray();

    } finally {

        is.close();

    }

}

    // reads a string resource

public String getStringResource(int id, Charset encoding) throws IOException {

    return new String(getResource(id, getContext()), encoding);

}

    // reads an UTF-8 string resource

public String getStringResource(int id) throws IOException {

    return new String(getResource(id, getContext()), Charset.forName("UTF-8"));

}[/shcode]

تشکر از شما

دوست عزیز امکانش هست این پروژه rows که تو این تاپیک  http://p30droid.com/Thread-%DB%8C%DA%A9-%D8%A7%DA%A9%D8%AA%DB%8C%D9%88%DB%8C%D8%AA%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF به عنوان مثال گذاشتید رو با یه فایل تکست فارسی بگذارید تا کاملا مشکلم حل بشه،خیلی خیلی ممنونم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

من خوب متوجه نشدم، الان این کلاس رو ایجاد کردم اما هیچ اتفاقی نیافتاد، لطفا در حد آماتور یا همراه یه مثال توضیح بدید، من کجای کد دستورایی که بالا گفتید رو باید تغییر بدم چی باید بهش اضافه کنم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر
public static String readTextFile(int resId)   {       InputStream inputStream = getResources().openRawResource(resId);       InputStreamReader inputreader = new InputStreamReader(inputStream);       BufferedReader bufferedreader = new BufferedReader(inputreader);       String line;       StringBuilder stringBuilder = new StringBuilder();       try       {           while (( line = bufferedreader.readLine()) != null)           {               stringBuilder.append(line);               stringBuilder.append('\n');           }       }       catch (IOException e)       {           return null;       }       return stringBuilder.toString();   }

بفرما

فایل تکست رو بریز تو raw بعد id اونو بده به این تابع

اینجوری

tv.settext(readTextFile(R.raw.s));    H

)

لینک ارسال
به اشتراک گذاری در سایت های دیگر
public static String readTextFile(int resId)   {       InputStream inputStream = getResources().openRawResource(resId);       InputStreamReader inputreader = new InputStreamReader(inputStream);       BufferedReader bufferedreader = new BufferedReader(inputreader);       String line;       StringBuilder stringBuilder = new StringBuilder();       try       {           while (( line = bufferedreader.readLine()) != null)           {               stringBuilder.append(line);               stringBuilder.append('\n');           }       }       catch (IOException e)       {           return null;       }       return stringBuilder.toString();   }

بفرما

فایل تکست رو بریز تو raw بعد id اونو بده به این تابع

اینجوری

tv.settext(readTextFile(R.raw.s));    H

)

اگر ممکنه یه پروژه نمونه فقط برای نمایش تکست فارسی به همین روش آماده کنید که خروجی بده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کد درسته و مشکلی ندار،ه کجای کد خطا میده؟

من فقط میخوام این دستورات رو در قالب یه مثال بهتر درک کنم تهیه یه پروژه که خیلی باید براتون آسون باشه

الان درخواست من از مجموعه دولوپرای این فروم اینه که یه نرم افزار خیلی کوچیک برای نمایش فایل تکست فارسی بزارن، منظورم یه پروژه مثاله

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 1 ماه بعد...

سلام

من یه پروژه برای نمایش تکست فارسی براتون آماده کردم. امیدوارم به دردتون بخوره. (البته حتما میدونید که حروف نوشته ی فارسی توی شبیه ساز جدا از هم نشون داده میشه که اشکالی نداره. روی موبایل درسته)

لینک دانلود سورس پروژه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...