aminsh77

مشکل در Fragment

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

با سلام خدمت شما دوستان عزیز

داخل یک کلاس  Fragment از کدها ی زیر استفاده کردم :

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;




public class TwoFragment extends Fragment {

   public int fav_total_num;
   public all all = new all();
   public List Fav_numbers;
   public List Fav_strings;
   private ListView lv;
   ArrayAdapter adapter;
   // This event fires 1st, before creation of fragment or any views
   // The onAttach method is called when the Fragment instance is associated with an Activity.
   // This does not mean the Activity is fully initialized.

   // This event fires 2nd, before views are created for the fragment
   // The onCreate method is called when the Fragment instance is being created, or re-created.
   // Use onCreate for any standard setup that does not require the activity to be fully created

   // The onCreateView method is called when Fragment should create its View object hierarchy,
   // either dynamically or via XML layout inflation.
   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
       return inflater.inflate(R.layout.fragment_two, parent, false);


       Fav_strings = new ArrayList();
       Fav_numbers = new ArrayList();
       final SharedPreferences shared = getSharedPreferences("Prefs",
               MODE_PRIVATE);
       fav_total_num = all.fav_total_num;
       for (int x = 1; x < fav_total_num + 1; x = x + 1) {
           String sub = "matn_" + String.valueOf(x);
           Boolean b = shared.getBoolean(sub, false);
           if (b) {
               String this_sub = "matn_" + String.valueOf(x);
               int num_id = getResources().getIdentifier(this_sub, "string",
                       getPackageName());
               Fav_strings.add(getResources().getString(num_id));
               String x_string = String.valueOf(x);
               Fav_numbers.add(x_string);
           }
       }


        lv = (ListView) lv.findViewById(R.id.list_view);
       adapter = new ArrayAdapter(getActivity(), R.layout.list_item_favorites,
               R.id.favorites_textView, Fav_strings);
       lv.setAdapter(adapter);

       lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

           @Override
           public void onItemClick(AdapterView<?> parent, final View view,
                                   int position, long id) {
               // ع¯ط±ظپطھظ† ظ…طھظ† ط¬ط²ظˆ ط¹ظ„ط§ظ‚ظ‡ ظ…ظ†ط¯غŒ ط´ط¯ظ‡ ظˆ ظ†ظ…ط§غŒط´ ط§ظ† ط¯ط± ط§ع©طھغŒظˆغŒطھغŒ ظ†ظ…ط§غŒط´
               String fav_number = Fav_numbers.get(position);
               Intent i = new Intent(getActivity(), SecondActivity.class);
               i.putExtra("matn_number", fav_number);
               startActivity(i);
              getActivity();

           }
       });

       if (lv.getAdapter().getCount() < 1) {
           showImagView();
       }

   }
   private void showImagView() {
       // TODO Auto-generated method stub



       RelativeLayout iv = (RelativeLayout) lv.findViewById(R.id.back);
       iv.setBackgroundResource(R.drawable.empty_back);



   }


   // This method is called after the parent Activity's onCreate() method has completed.
   // Accessing the view hierarchy of the parent activity must be done in the onActivityCreated.
   // At this point, it is safe to search for activity View objects by their ID, for example.
   @Override
   public void onActivityCreated(Bundle savedInstanceState) {
       super.onActivityCreated(savedInstanceState);
   }



   }

و در کدهای زیر به مشکل خوردم:

http://p30droid.com/Uploader/do.php?img=772

حالا باید چه کدی جایگزین اینها کنم یا چگونه تغییر بدمشون؟؟

با تشکر

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


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

یعنی هیچکس بلد نیست؟

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


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

واسه getSharedPreferences بنویس

[shcode=java]getActivity().getSharedPreferences[/shcode]

واسه MODE_PRIVATE بنویس

[shcode=java]getActivity().Context.MODE_PRIVATE[/shcode] یا [shcode=java]getActivity().MODE_PRIVATE[/shcode]

واسه getPackageName() بنویس

[shcode=java]getApplicationContext().getPackageName()[/shcode]

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


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

واسه getSharedPreferences بنویس

[shcode=java]getActivity().getSharedPreferences[/shcode]

واسه MODE_PRIVATE بنویس

[shcode=java]getActivity().Context.MODE_PRIVATE[/shcode] یا [shcode=java]getActivity().MODE_PRIVATE[/shcode]

واسه getPackageName() بنویس

[shcode=java]getApplicationContext().getPackageName()[/shcode]

خیلی ممنون دوست عزیز حالا یه مشکل دیگه دارم که دست شما رو میبوسه :D

اینم عکسش: http://p30droid.com/Uploader/do.php?img=774

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


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

این کدی که خط قرمز زیرش کشیده شده مشکلی نداره ، احتمالا توی تعریف متغیر مشکل داری ، کد اون قسمت رو بذار

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


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

این کدی که خط قرمز زیرش کشیده شده مشکلی نداره ، احتمالا توی تعریف متغیر مشکل داری ، کد اون قسمت رو بذار

 

کدهای کلاسم اینا هستن

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

import barqhlll.iranapps.ir.myapplication.R;


public class TwoFragment extends Fragment {

   public int fav_total_num;
   public all all = new all();
   public List Fav_numbers;
   public List Fav_strings;
   private ListView lv;
   ArrayAdapter adapter;


   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
       return inflater.inflate(R.layout.fragment_two, parent, false);



       Fav_strings = new ArrayList();
       Fav_numbers = new ArrayList();


       final SharedPreferences shared = getActivity().getSharedPreferences("Prefs",
               getActivity().MODE_PRIVATE);


       fav_total_num = all.fav_total_num;
       for (int x = 1; x < fav_total_num + 1; x = x + 1) {
           String sub = "matn_" + String.valueOf(x);
           Boolean b = shared.getBoolean(sub, false);
           if (b) {
               String this_sub = "matn_" + String.valueOf(x);
               int num_id = getResources().getIdentifier(this_sub, "string",
                       getActivity().getPackageName());
               Fav_strings.add(getResources().getString(num_id));
               String x_string = String.valueOf(x);
               Fav_numbers.add(x_string);
           }
       }



       ListView lv = (ListView) lv.findViewById(R.id.list_view);
       adapter = new ArrayAdapter(getActivity(), R.layout.list_item_favorites,
               R.id.favorites_textView, Fav_strings);
       lv.setAdapter(adapter);

       lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

           @Override
           public void onItemClick(AdapterView<?> parent, final View view,
                                   int position, long id) {


               String fav_number = Fav_numbers.get(position);
               Intent i = new Intent(getActivity().getApplicationContext(), Show_matn.class);
               i.putExtra("matn_number", fav_number);
               startActivity(i);
               getActivity().finish();

           }
       });


       if (lv.getAdapter().getCount() < 1 ) {
           showImagView();
       }
   }

   private void showImagView() {
       // TODO Auto-generated method stub



       RelativeLayout iv = (RelativeLayout) lv.findViewById(R.id.back);
       iv.setBackgroundResource(R.drawable.empty_back);




   }




   @Override
   public void onActivityCreated(Bundle savedInstanceState) {
       super.onActivityCreated(savedInstanceState);
   }



   }

داخل strings.xml

هم این کدها رو نوشتم


Design Demo
Hello world!
Settings
Attachment
Images
My Location
Sub Menu
Sub Menu Item 1
Sub Menu Item 2
Drawer Header
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin consectetur diam id aliquam scelerisque. Donec ultrices lacus vel dignissim pharetra. Vivamus pharetra augue quis rhoncus placerat. Sed ultricies at risus non cursus. Nam rutrum leo nec placerat consectetur. Vestibulum feugiat eleifend diam, nec interdum augue tincidunt sit amet. Praesent feugiat est auctor lacus consectetur, vitae pellentesque dolor laoreet.
SecondActivity
salam
by
chi

موضوع اول
موضوع دوم
موضوع سوم
موضوع چهارم
موضوع پنجم
موضوع ششم
موضوع هفتم
موضوع هشتم
موضوع نهم

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


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

کد خطا رو هم بذار

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


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

کد خطا رو هم بذار

اینم کد خطا

Information:Gradle tasks [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:assembleDebug]
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72301Library UP-TO-DATE
:app:prepareComAndroidSupportCardviewV72301Library UP-TO-DATE
:app:prepareComAndroidSupportDesign2301Library UP-TO-DATE
:app:prepareComAndroidSupportRecyclerviewV72301Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42301Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:preDebugAndroidTestBuild UP-TO-DATE
:app:prepareDebugAndroidTestDependencies
:app:compileDebugAndroidTestAidl UP-TO-DATE
:app:processDebugAndroidTestManifest UP-TO-DATE
:app:compileDebugAndroidTestRenderscript UP-TO-DATE
:app:generateDebugAndroidTestBuildConfig UP-TO-DATE
:app:generateDebugAndroidTestAssets UP-TO-DATE
:app:mergeDebugAndroidTestAssets UP-TO-DATE
:app:generateDebugAndroidTestResValues UP-TO-DATE
:app:generateDebugAndroidTestResources UP-TO-DATE
:app:mergeDebugAndroidTestResources UP-TO-DATE
:app:processDebugAndroidTestResources UP-TO-DATE
:app:generateDebugAndroidTestSources UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJavaWithJavac
C:\Users\Amin.sh\Desktop\MyApplication10\app\src\main\java\barqhlll\iranapps\ir\myapplication\TwoFragment.java
Error:(48, 9) error: unreachable statement
Error:(73, 34) error: variable lv might not have been initialized
Error:(96, 5) error: missing return statement
Note: C:\Users\Amin.sh\Desktop\MyApplication10\app\src\main\java\barqhlll\iranapps\ir\myapplication\OneFragment.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 1.871 secs
Information:4 errors
Information:0 warnings
Information:See complete output in console


حالا چیکار کنم؟


دوستان لطفا کمک کنید خیلی گیرم

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


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

Fav_strings و Fav_numbers دارن توی یه دستور if مقدار دهی میشن ، این معنیش اینه که ممکنه هیچ موقع مقدار نگیرن ، از اون طرف هم توی رویداد کلیک لیست ویو مقدارشون فراخوانی شده ، کامپایلر هم از همین ایران گرفته ، برای رفع مشکل یه راهش اینه که دستور lv.setOnItemClickListener رو بذاری تو یه کنترل کننده استثنا که اگر اون دو تا متغیر مقدار نداشتن برنامه بسته نشه ، راه دیگه ش هم اینه که به هر کدام از دو متغر یه مقدار nullیا یه مقدار الکی بدی ، مثلا اینجوری :

[shcode=java]Fav_strings.add("");[/shcode]

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


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

Fav_strings و Fav_numbers دارن توی یه دستور if مقدار دهی میشن ، این معنیش اینه که ممکنه هیچ موقع مقدار نگیرن ، از اون طرف هم توی رویداد کلیک لیست ویو مقدارشون فراخوانی شده ، کامپایلر هم از همین ایران گرفته ، برای رفع مشکل یه راهش اینه که دستور lv.setOnItemClickListener رو بذاری تو یه کنترل کننده استثنا که اگر اون دو تا متغیر مقدار نداشتن برنامه بسته نشه ، راه دیگه ش هم اینه که به هر کدام از دو متغر یه مقدار nullیا یه مقدار الکی بدی ، مثلا اینجوری :

[shcode=java]Fav_strings.add("");[/shcode]

مشکلم حل نشد هنوز همونجوره

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


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

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

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

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

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


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

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

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


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