آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

فرگمنت دیالوگ (حل شد)

علی  9 سال پیش  9 سال پیش
0 0

سلام :  چطور میشه در یه فرگمنت دیالوگی که هستیم بتونیم دوباره reload کنیم ؟ 

فقط می دونم قبلش بایستی کنسلش کرد.

 getDialog().cancel();
0 0
میشه بیشتر توضیح بدی دقیقا چیکار می خوای بکنی (9 سال پیش)
0 0
من الان داخل یه فرگمنت دیالوگ هستم که لیست ویو داره و از سرور می خونه و روی هر آیتم لیست ویو کلیک می کنم خود لیست ویو gone میشه و توضیحات که همراه با عکس هست رو می خونه وقتی دکمه بازگشت می زنم و دوباره لیست ویو رو visible می کنم و دوباره میرم تو قسمت توضیحات می بینم دوباره تکرار میشه با عکسش. می خوام وقتی بک می کنم دوباره رفرش شه و انگاری دوباره فرگمنت دیالوگ اجرا بشه. چون نفهمیدم کجای تکرار به وجود میاد . (9 سال پیش)
0 0
برای به روز شدن لیستت notifydata.... را صدا میزنی؟ برای تغییر ایتم هم بهتره به لایه ایتم همی لیستت یه ای دی بدی و در ادابتر داخل setonclick لایه یه متغییر در کلاس G را مقدار بدی و اطلاعات از از روی اون بخونی (9 سال پیش)
0 0
notify کردم بازم تکرار میشه باید کلا فرگمنت دوباره اجرا بشه تا تکرار نشه . آرایه هم clear می کنم ولی بازم نمیشه . من از این لینک برای توضیحات به همراه عکس استفاده کردم. داخل این متد تکرار به وجود میاد که نمی دونم چطوری؟ (9 سال پیش)
0 0
از متغییر در کلاس G استفاده کن (9 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
علی  9 سال پیش
0 0

این کدهای من در فرگمنت دیالوگ !

  adapter = new AdapterFragmentHelp(getActivity(), G.help);

    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      @Override

      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        lHelp.setVisibility(View.GONE);
        lListView.setVisibility(View.GONE);
        finish.setVisibility(View.GONE);
        item = (StructFragmentHelp) list.getItemAtPosition(position);

        doProcess();
        lDescHelp.setVisibility(View.VISIBLE);
        lBack.setVisibility(View.VISIBLE);

      }
    });


    finish.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View arg0) {

        getDialog().cancel();

      }
    });

    lBack.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        lDescHelp.setVisibility(View.GONE);
        lBack.setVisibility(View.GONE);



        lHelp.setVisibility(View.VISIBLE);
        lListView.setVisibility(View.VISIBLE);
        finish.setVisibility(View.VISIBLE);


      }
    });

    return root;
  }


@Override public void onStart() { super.onStart(); TextView textView = (TextView) this.getDialog().findViewById(android.R.id.title); if (textView != null) { textView.setGravity(Gravity.CENTER); textView.setTextSize(16); } } //Read Data public void lData() { String url = "http://192.168.1.1/help_android.php?action=read"; String result = Webservice.readUrl(url, null); if (result != null) { try { G.help.clear(); JSONArray tasks = new JSONArray(result); for (int i = 0; i < tasks.length(); i++) { JSONObject object = tasks.getJSONObject(i); StructFragmentHelp task = new StructFragmentHelp(); task.id = object.getInt("id"); task.title = object.getString("title"); task.desc = object.getString("desc"); task.image = object.getString("image"); G.help.add(task); } adapter.notifyDataSetChanged(); } catch (JSONException e) { e.printStackTrace(); } } } public void doProcess() { String content = item.desc; Pattern pattern = Pattern.compile("\\[image:'(.*?)'\\]"); Matcher matcher = pattern.matcher(content); int lastIndex = 0; if (matcher.find()) { String newContent = content.substring(lastIndex, matcher.start(1)).replace("[image:'", "").replace("']", ""); addTextView(newContent); String imageName = content.substring(matcher.start(1), matcher.end(1)); addImageView(imageName); lastIndex = matcher.end(1); } String newContent = content.substring(lastIndex, content.length()).replace("[image:'", "").replace("']", ""); addTextView(newContent); } private void addImageView(String imageName) { ImageView imageView = new ImageView(getActivity()); if (!item.image.equals("")) { Picasso.with(getActivity()) .load(item.image) .placeholder(R.drawable.picasso_smile) .error(R.drawable.picasso_close) .into(imageView); } layoutRoot.addView(imageView); } private void addTextView(String text) { TextView textView = new TextView(getActivity()); textView.setText(text); textView.setTextSize(12); textView.setTextColor(Color.BLUE); textView.setTypeface(G.typeface); layoutRoot.addView(textView); } class HelpAsync extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... params) { lData(); return null; } @Override protected void onPreExecute() { showProgressBar_page(); super.onPreExecute(); } @Override protected void onPostExecute(String result) { hideProgressBar_page(); lHelp.setVisibility(View.VISIBLE); lListView.setVisibility(View.VISIBLE); finish.setVisibility(View.VISIBLE); list.setAdapter(adapter); } }
0 0
item را از لیست ویو پر نکن یه ارایه بگیر توی کلاس G تمام آیتم های لیست ویو را (ایتم های کلاسشو) بریز توی آرایه و فقط از position لیست ویو برای خوندن خونه ارایه استفاده کن بریز توی آیتم (9 سال پیش)
0 0
احمد جان میشه با کد توضیح بدی ؟ الان گیج شدم ! :( (9 سال پیش)
پاسخ به سوال 
احمد  9 سال پیش
0 0

روی پروژه note برات مثال میزنم: این کلاسمنونه

 public class StructTask {
	public long task_id;
	public String task_title;
	public String task_desc;
	public boolean task_done;

}

حالا توی کلاس G یه ارایه میسازی: کدهای اضافیش را گذاشتم که بدونی کجا تعریف کردم

 public class G extends Application {

    public static Context               context;
    public static LayoutInflater        inflater;
    public static Activity              currentActivity;
    public static ArrayList<StructTask> tasks = new ArrayList<StructTask>();
}

حالا وقتی اطلاعات را گرفتی اول ارایه را پر می کنی بعد ارایه را پاس میدی به ادابتر لیست ویو:

 adabter = new AdapterNote(G.tasks);
lstnotes.setAdapter(adabter);

حالا توی کلیک لیست می تونی اینتوری بنویسی:

 		lstnotes.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int position,
					long arg3) {
				StructTask item = G.tasks.get(position);
				btnaddnorte.setText(item.task_title);
				// TODO Auto-generated method stub
				
			}
		});
0 0
احمد جان من که همه اینا رو ساختم . اگه تو کدهای من نگاه کنی همش هست !! :( (9 سال پیش)
0 0
قسمت کلیک لیستت را مقایسه کن (9 سال پیش)
0 0
اون رو هم مثل کد شما گذاشتم نشد. وقتی doProcess(); بردارم از کلیک لیست درسته متن . تکرار نمیشه ولی اون رو میزارم که بتونم بین متن عکس هم استفاده کنم این مشکل پیش میاد . (9 سال پیش)
پاسخ به سوال 
علی  9 سال پیش
+1 0

مشکل حل شد فقط وقتی بک می کردم باید LinaerLayout رو هر چی توش میمونه رو پاک کرد. 

اینجوری :

   if((layoutRoot).getChildCount() > 0)
          (layoutRoot).removeAllViews();
0 0
آفرین (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .