نمایش نتایج 1 تا 11 از 11

نام تاپیک: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

  1. #1

    روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    با سلام خدمت دوستان عزیزم
    سوال من اینه که چطور میشه یک کوئری ساده (فیلتر) از داده های داخل فایل strings.xml گرفت ؟

    برای مثال فایل زیر را در نظر بگیرید :


    String city;
    String msource;
    int img;
    String[] Subjects1 = new String[716];
    String[] Subjects2 = new String[716];
    Integer[] imageId = new Integer[716];

    for (int x = 1; x < 716 + 1; x = x + 1)
    {
    String this_subjectcity = "subject_city_" + String.valueOf(x);
    int resIDcity = getResources().getIdentifier(this_subjectcity, "string", getPackageName());
    city = getResources().getString(resIDcity);
    String this_subject1 = "subject_" + String.valueOf(x);
    int resID1 = getResources().getIdentifier(this_subject1, "string", getPackageName());
    msource = getResources().getString(resID1);
    String this_imageId = "imgm" + String.valueOf(x);
    img = getResources().getIdentifier(this_imageId, "drawable", getPackageName());

    if (city == "تهران")
    {
    Subjects1[x-1] = msource;
    Subjects2[x-1] = city;
    imageId[x-1] = img;
    }
    }


    من در این مثال خواستم string value هایی رو که subject_city برابر با "تهران" هست رو داخل لیست ویو نمایش بده
    ولی متاسفانه برنامه force close میشه
    البته این رو بگم که خود حلقه مشکل نداره و خروجی میده ، فقط زمانی که از شرط if استفاده میکنم force close میشه
    ممنون میشم در این بابت من رو راهنمایی کنید.

  2. #2

    نقل قول: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    دوستان کسی نیست مشکل من رو حل کنه ؟؟؟

  3. #3
    کاربر دائمی آواتار Nevercom
    تاریخ عضویت
    دی 1387
    محل زندگی
    بستک
    سن
    30
    پست
    1,071

    نقل قول: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    اولین چیزی که باید بهش توجه کنید اینه که برای چک کردن برابری دو تا String باید از متد equals استفاده کنید:
    if (city.equals("tehran")){...}

  4. #4
    کاربر دائمی آواتار farhad_shiri_ex
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    668

    نقل قول: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    نقل قول نوشته شده توسط masoud_dmp مشاهده تاپیک
    با سلام خدمت دوستان عزیزم
    سوال من اینه که چطور میشه یک کوئری ساده (فیلتر) از داده های داخل فایل strings.xml گرفت ؟

    برای مثال فایل زیر را در نظر بگیرید :


    String city;
    String msource;
    int img;
    String[] Subjects1 = new String[716];
    String[] Subjects2 = new String[716];
    Integer[] imageId = new Integer[716];

    for (int x = 1; x < 716 + 1; x = x + 1)
    {
    String this_subjectcity = "subject_city_" + String.valueOf(x);
    int resIDcity = getResources().getIdentifier(this_subjectcity, "string", getPackageName());
    city = getResources().getString(resIDcity);
    String this_subject1 = "subject_" + String.valueOf(x);
    int resID1 = getResources().getIdentifier(this_subject1, "string", getPackageName());
    msource = getResources().getString(resID1);
    String this_imageId = "imgm" + String.valueOf(x);
    img = getResources().getIdentifier(this_imageId, "drawable", getPackageName());

    if (city == "تهران")
    {
    Subjects1[x-1] = msource;
    Subjects2[x-1] = city;
    imageId[x-1] = img;
    }
    }


    من در این مثال خواستم string value هایی رو که subject_city برابر با "تهران" هست رو داخل لیست ویو نمایش بده
    ولی متاسفانه برنامه force close میشه
    البته این رو بگم که خود حلقه مشکل نداره و خروجی میده ، فقط زمانی که از شرط if استفاده میکنم force close میشه
    ممنون میشم در این بابت من رو راهنمایی کنید.
    و همینطور می تونید از متد compare هم استفاده کنید. در کل در زبان جاوا برای مقایسه دو رشته از نوع String حتما باید از متد equals , compare استفاده کنید نمی تونید از عملگر == استفاده کنید چون در زبان جاوا operator over loading پشتیبانی نمیشه!
     
    if (city.comapre("تهران"))

  5. #5

    نقل قول: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    نقل قول نوشته شده توسط Nevercom مشاهده تاپیک
    اولین چیزی که باید بهش توجه کنید اینه که برای چک کردن برابری دو تا String باید از متد equals استفاده کنید:
    if (city.equals("tehran")){...}
    تا اینجای کار ازتون ممنونم مشکلم برطرف شد
    مشکل بعدیم اینه که چیکار کنم تا رکورد های بعدی در لیست ویو نمایش داده نشه
    با کد زیر مشکلم برطرف نشد


    if (city.equals("تهران"))
    {

    Subjects1[x-1] = msource;
    Subjects2[x-1] = city;
    imageId[x-1] = img;
    }

    else
    {
    Subjects1[x-1] = "";
    Subjects2[x-1] = "";
    imageId[x-1] = 0;
    }

  6. #6

    نقل قول: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    اگه واضح نیست کد کاملش رو بزارم

  7. #7
    کاربر دائمی آواتار farhad_shiri_ex
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    668

    نقل قول: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    نقل قول نوشته شده توسط masoud_dmp مشاهده تاپیک
    تا اینجای کار ازتون ممنونم مشکلم برطرف شد
    مشکل بعدیم اینه که چیکار کنم تا رکورد های بعدی در لیست ویو نمایش داده نشه
    با کد زیر مشکلم برطرف نشد


    if (city.equals("تهران"))
    {

    Subjects1[x-1] = msource;
    Subjects2[x-1] = city;
    imageId[x-1] = img;
    }

    else
    {
    Subjects1[x-1] = "";
    Subjects2[x-1] = "";
    imageId[x-1] = 0;
    }
    اگر منظورتون این هست که فقط عبارت مورد جستجو در لیست فیلتر شود که خوب این کاری که کردید درست نیست که هربار بقیه رکورد ها را خالی کنید سربار زیادی داره.
    به نظرم بهتر هست که یا دریک دیالوگ و یا یک اکتیویتی جزئیات مورد جستجو را نمایش بدید
    ویا اگر اصرار به نمایش در لیست دارید باید کرسری که فقط مورد فیلتر شده در آن هست را در آداپتری که به لیست ویو متصل کرده اید به روز کنید و لیست ویو را invalidate کنید تا فقط موردجستجو شده را نمایش دهد. در کل باید یک گزینه (نمایش همه) هم برای لیست ویو تدارک ببنید که در صورت لزوم بتوان مجددا کل لیست را نمایش داد.
    البته این نظر من بود دوستان حرفه ای تر مثل Nevercom در طراحی UI/UX با تجربه ترند می تونید از ایشون هم بخواهید.

  8. #8

    نقل قول: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    سلام
    ممنون میشم اگه یه نمونه کد برام بزارید (در خصوص فیلتر کردن)
    آخه حقیقتش تو این ضمینه من یه مقدار تازه کار هستم

  9. #9

    نقل قول: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    کد کامل جاوای این فایل :


    package com.mws.dmp.irangardi;

    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.GridView;
    import android.widget.Toast;
    import android.app.*;
    import android.content.*;
    import android.widget.*;
    import android.view.*;
    import android.widget.AdapterView.*;
    import android.graphics.*;

    public class subject extends Activity {

    public ListView lv;
    public int Subjects_total_number;
    public String[] Subjects;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
    //Remove notification bar
    getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowM anager.LayoutParams.FLAG_FULLSCREEN );

    //Remove title bar
    this.requestWindowFeature(Window.FEATURE_NO_TITLE) ;

    super.onCreate(savedInstanceState);
    setContentView(R.layout.subject);

    // change subject
    // Bundle extras = getIntent().getExtras();
    // String myVariable_2 = extras.getString("subject_key");
    //
    final Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Koodak.ttf");
    TextView txt = (TextView) findViewById(R.id.subject_textView);
    txt.setTypeface(font);

    String city;
    String msource;
    int img;
    String[] Subjects1 = new String[716];
    String[] Subjects2 = new String[716];
    Integer[] imageId = new Integer[716];

    for (int x = 1; x < 716 + 1; x = x + 1)
    {
    String this_subjectcity = "subject_city_" + String.valueOf(x);
    int resIDcity = getResources().getIdentifier(this_subjectcity, "string", getPackageName());
    city = getResources().getString(resIDcity);
    String this_subject1 = "subject_" + String.valueOf(x);
    int resID1 = getResources().getIdentifier(this_subject1, "string", getPackageName());
    msource = getResources().getString(resID1);
    String this_imageId = "imgm" + String.valueOf(x);
    img = getResources().getIdentifier(this_imageId, "drawable", getPackageName());

    if (city.equals("تهران"))
    {

    Subjects1[x-1] = msource;
    Subjects2[x-1] = city;
    imageId[x-1] = img;
    }

    else
    {
    Subjects1[x-1] = "";
    Subjects2[x-1] = "";
    imageId[x-1] = 0;
    }
    }



    CustomList adapter = new CustomList(subject.this, Subjects1, Subjects2, imageId);
    ListView list=(ListView)findViewById(R.id.list_view1);
    list.setAdapter(adapter);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
    Intent i = new Intent(getApplicationContext(), source.class);
    String Subject_number = String.valueOf(position+1);
    i.putExtra("subject_number", Subject_number);
    startActivity(i);
    }
    });
    }
    }


    و همینطور کد مربوط به فایل CustomList.java


    package com.mws.dmp.irangardi;

    import android.app.Activity;
    import android.content.res.AssetManager;
    import android.graphics.Typeface;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.content.*;
    import android.view.animation.*;
    public class CustomList extends ArrayAdapter<String>{

    //Typeface معرفی کلاس
    private Typeface tf;
    private final Activity context;

    //معرفی نام و تصاویر از اکتیوتی
    private final String[] subject_name1;
    private final String[] subject_name2;
    private final Integer[] imageId;


    public CustomList(Activity context,String[] subject_name1,String[] subject_name2,Integer[] imageId) {
    super(context, R.layout.list_file, subject_name1);

    this.context = context;
    this.subject_name1 = subject_name1;
    this.subject_name2 = subject_name2;
    this.imageId = imageId;

    //فرواخوانی فونت از پوشه فونت


    }

    // private AssetManager getAssets()
    // {
    // // TODO: Implement this method
    // return null;
    // }

    @Override
    public View getView(int position, View view, ViewGroup parent) {
    LayoutInflater inflater = context.getLayoutInflater();



    View rowView= inflater.inflate(R.layout.list_file, null, true);
    TextView txtTitle1 = (TextView) rowView.findViewById(R.id.listfileTextView_text);
    TextView txtTitle2 = (TextView) rowView.findViewById(R.id.listfileTextViewCITY);
    //افزودن فونت به تکست ویو

    Animation animation = AnimationUtils.loadAnimation(getContext(), R.anim.slide_in_right2);
    rowView.startAnimation(animation);

    ImageView imageView = (ImageView) rowView.findViewById(R.id.listfileImageView1);
    txtTitle1.setText(subject_name1[position]);
    txtTitle2.setText(subject_name2[position]);


    txtTitle1.setTypeface(this.tf = Typeface.createFromAsset(context.getAssets(),"font s/Koodak.ttf"));


    imageView.setImageResource(imageId[position]);
    return rowView;



    }}


    اگه تغییراتی تو این دو فایل بابت عدم نمایش ردیفهای لیست ویو لازم هست ممنون میشم بگید

  10. #10

    نقل قول: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    دوستان من رو کمک شما حساب باز کردم
    بد جوری گیر افتادم ممنون میشم اگه راهنمایی کنید
    اگه هر سوالی در این خصوص دارید بگید تا بلکه مشکل من برطرف بشه

    اصل قضیه اینه که من رو یه اپلیکیشن ایرانگردی کار میکنم
    میخوام تمام استان ها رو لیست کنم وقتی رو هر استان کلیک میکنید مکان های گردشگری مربوط به اون استان رو نشون بده
    فقط همین

  11. #11

    نقل قول: روش گرفتن کوئری از فایل strings.xml در برنامه نویسی اندروید

    طبق اون چیزی که من جستجو کردم ظاهرا باید داده های xml رو parse (تجزیه) کرد ولی چجوری نمیدونم ؟...

تاپیک های مشابه

  1. آیا الزامی برای یادگیری XML در برنامه نویسی آندروید وجود دارد؟
    نوشته شده توسط pooya1072 در بخش برنامه نویسی Android
    پاسخ: 2
    آخرین پست: سه شنبه 24 مهر 1397, 21:54 عصر
  2. استفاده از فایل های اتوکد در برنامه نویسی تحت وب
    نوشته شده توسط یاسر مددیان در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: یک شنبه 26 آبان 1387, 08:05 صبح
  3. سوال: آیا می شه از فایل های xml در برنامه مون استفاده کنیم
    نوشته شده توسط rashid1368 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 05 مرداد 1387, 21:32 عصر
  4. گرفتن کوئری از یک کوئری دیگر
    نوشته شده توسط mohamadmjk در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: چهارشنبه 25 مرداد 1385, 09:07 صبح
  5. استفاده از فایل های فلش در برنامه نویسی!
    نوشته شده توسط mr_esmaily در بخش VB.NET
    پاسخ: 28
    آخرین پست: پنج شنبه 29 مرداد 1383, 05:10 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •