h.a.m.i.d

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

11 ارسال در این موضوع قرار دارد

سلام

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

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


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

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

)

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

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


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

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

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


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

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

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

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

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


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

سلام

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

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

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


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

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری