کلیدستان

نسخه‌ی کامل: فراخوانی یک فایل xml
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام به همه.
دوستان،من داخل یک فایل xml،جمله هایی رو مینویسم که بعدا میخوام اون ها رو در textview اکتیویتیم فراخوانی کنم،اما نمیشه.......من اینطوری فراخوانی میکنم.
مثلا این فایل xml مه:
کد:
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="My_xml">
       ><!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
   </string>
</resources>
و به این شکل هم فراخوانی میکنم:
کد:
String str=getResources().getString(R.string.My_xml);
        lblx.setText(str);
اما متن رو نشون نمیده!!
چی کار کنم؟
ممنون.
ممنون میشم که یکی جواب منو بده.
ممنون میشم یکی جواب منو بده.
خیلی لنگم...
وای منم این مشکل رو دارم! هیشکی نمیدونه واقعا؟!
دوست عزیز یعنی چی توی یک فایل xml جمله مینویسید؟؟ منظورتون همون فایل String.xml در پوشه value هست دیگه انشاالله؟؟؟
بله عزیز،قطعا همینطوره.
من داخل یک فایل String.xml جمله یا آیتم هام رو مینویسم و حالا در فراخوانیش مشکل دارم.
سلام دوست عزیز
والا بنده بصورت زیر امتحان کردم هیچ مشکلی پیش نمیاد حالا شاید شما یجایی یه اشتباهی بکنید که متنو نمایش نده.

فایل string.xml رو به این صورت ویرایش دادم:

کد:
<?xml version="1.0" encoding="utf-8"?>
<resources>

   <string name="app_name">Android_Testing</string>
   <string name="hello_world">Hello world!</string>
   <string name="action_settings">Settings</string>

   
   
   
   
     <string name="matn">سلام</string>
   
   
   
   
   
</resources>


مشاهده میکنید یه رشته ساختم به نام matn که دارای مقدار "سلام" و بعد کدهای اکتیویتی اصلی رو به صورت زیر نوشتم:

کد:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   tools:context="com.sina.android_testing.Main" >

   <TextView
       android:id="@+id/textView1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentTop="true"
       android:layout_centerHorizontal="true"
       android:text="Medium Text"
       android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

و اینم کلاس java :

کد پی‌اچ‌پی:
package com.sina.android_testing;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;

public class 
Main extends ActionBarActivity {

    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.main);
        
        
TextView tv = (TextViewfindViewById(R.id.textView1);
        
        
        
        
tv.setText(getResources().getString(R.string.matn));
        
        
    }


اگر به صورت رشته معمولی یا String باشه از طریق کد زیر قابل دسترسی هستش

کد:
String mystring = getResources().getString(R.string.mystring);

اگر هم بصورت ارایه رشته ای باشه Array String
یعنی به این صورت  باشه
کد پی‌اچ‌پی:
<array name="obituary_song">
 
       <item>poem 1</item>
 
       <item>poem 2</item>
 
       <item>poem 3</item>
 
       <item>poem 4</item>
 
       <item>poem 5</item>
 
       <item>poem 6</item>
 
       <item>poem 7</item>
 
       <item>poem 8</item>
 
       <item>poem 9</item>
 
       <item>poem 10</item>
 
       <item>poem 11</item>
 
   </array> 

از طریق کد زیر قابل دسترسی هستش
کد پی‌اچ‌پی:
String[] mObituary_Song;

mObituary_Song getResources().getStringArray(R.array.obituary_song); 
برای من از نوع String معمولی هست.
اما اگر دقت کنید،من داخل اولین پست نوشتم که با این شیوه فراخوانی میکنم،اما نمیاره.
پست اول رو لطفا یه باره بحونید.
(۱۳۹۴/۱۲/۱۸, ۰۱:۵۳ ب.ظ)batman1 نوشته: [ -> ]برای من از نوع String معمولی هست.
اما اگر دقت کنید،من داخل اولین پست نوشتم که با این شیوه فراخوانی میکنم،اما نمیاره.
پست اول رو لطفا یه باره بحونید.

دوست عزیز منم String معمولی رو آموزش دادم دیگه، مگه غیر این گفتم؟؟؟
دوست عزیز شما توی کد اولتون .چیزی داخل رشته ننوشتید که نشون بده..اون XXXXXXXXXXXXXXXxx که گذاشتید رو نباید هم نشون بده.چون قبلش از تگ
i> استفاده کردید.و این باعث میشه اون خط کامپایل نشه.
(۱۳۹۴/۱۲/۱۸, ۰۷:۲۰ ب.ظ)داش بهروز نوشته: [ -> ]دوست عزیز شما توی کد اولتون .چیزی داخل رشته ننوشتید که نشون بده..اون XXXXXXXXXXXXXXXxx که گذاشتید رو نباید هم نشون بده.چون قبلش از تگ
i> استفاده کردید.و این باعث میشه اون خط کامپایل نشه.

فک کنم خودشون میدونن و اینجوری فقط واس سایت نوشتن، اگه نمیدونن که تا الان سر کار بودیم Confused Rolleyes Big Grin
نه آقا،اختیار دارید.
سرکاری کدومه........من برنامه نویس مبتدیه اندرویدم و تجربه ندارم.
شماها هم که همیشه به من لطف دارید و سوالای منو جواب میدید.
این ایکس ایکسا هم مثلا متنه و اون علامته هم خودش به صورت پیشفرض میندازه
ممنون.
(۱۳۹۴/۱۲/۱۸, ۰۹:۵۸ ب.ظ)batman1 نوشته: [ -> ]نه آقا،اختیار دارید.
سرکاری کدومه........من برنامه نویس مبتدیه اندرویدم و تجربه ندارم.
شماها هم که همیشه به من لطف دارید و سوالای منو جواب میدید.
این ایکس ایکسا هم مثلا متنه و اون علامته هم خودش به صورت پیشفرض میندازه
ممنون.

نه داداش عزیزی منظورم از سرکاری معنیه واقعیش نبود بلکه یجور شوخی بود. در کل باید کد هارو اینجوری بنویسی دیگه:
کد:
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="My_xml">  متن رو اینجا بنویسید بدون هیچ علامت یا کارکتر خاصی همینجوری که من نوشتم اصن همینو کپی کنید!! </string>
</resources>
مرسی . متشکرم بابت توضیحات خوبتون.