활동에서 클래스 범위 조각으로 데이터 보내기

재키 찬

ViewPager를 사용하여 활동에 코드가 있습니다.

//mycode
public class ViewPagerActivity extends FragmentActivity implements
    ActionBar.TabListener {
    private ViewPager viewPager;
    private TabsPagerAdapterHehe mAdapter1;
    private ActionBar actionBar;
    // Tab titles
    private String[] tabs = {"Feed", "Search", "Status"};
    Toast mToast = null;
    // set ActionBar;
    private LinearLayout layout_btn_search, layout_image_view, layout_edt_search, layout_btn_logout;
    private EditText edt_search_1;
    String key_word;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_pager);

        // check internet cho app
        cd = new ConnectionDetector(getApplicationContext());
        isInternetPresent = cd.checkMobileInternetConn();

        // isOnline
        boolean b = isOnline();
        if (isOnline()) {
            setActionBar();
            // Initilization
            viewPager = (ViewPager) findViewById(R.id.pager);
            actionBar = getActionBar();
            mAdapter1 = new TabsPagerAdapterHehe(getSupportFragmentManager());
            viewPager.setAdapter(mAdapter1);
            actionBar.setHomeButtonEnabled(false);
         actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

            // Adding Tabs
            for (String tab_name : tabs) {
                actionBar.addTab(actionBar.newTab().setText(tab_name)
                        .setTabListener(ViewPagerActivity.this));
            }

            /**
             * on swiping the viewpager make respective tab selected
             * */
            viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {
                    // on changing the page
                    // make respected tab selected
                    actionBar.setSelectedNavigationItem(position);
                }
            });
        } else {
            Toast.makeText(ViewPagerActivity.this, "ネットワーク環境がありません", Toast.LENGTH_SHORT).show();
        }
    }

    // show dialog check Internet cho app
    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        hideSoftKeyboard();
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        layout_edt_search.setVisibility(View.GONE);
        layout_btn_search.setVisibility(View.VISIBLE);
        edt_search_1.setText("");
        hideSoftKeyboard();
        // on tab selected
        // show respected fragment view
        boolean b = isOnline();
        if (isOnline()) {
            viewPager.setCurrentItem(tab.getPosition());
        } else {
            viewPager.setCurrentItem(tab.getPosition());
            Toast.makeText(ViewPagerActivity.this, "ネットワーク環境がありません", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        hideSoftKeyboard();
    }
    // set ActionBar
    private void setActionBar() {
        actionBar = getActionBar();
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayShowTitleEnabled(false);
        LayoutInflater inflater = LayoutInflater.from(this);
        View mView = inflater.inflate(R.layout.custom_actionbar, null);


        edt_search_1.setOnEditorActionListener(new EditText.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                    // hide keyboard
                          Bundle b = new Bundle();
                            key_word = edt_search_1.getText().toString();
                            b.putString("keyword", keyword);
                            FragmentSearch fgsearch = new FragmentSearch();
                            fgsearch.setArguments(b);
                            Log.e("KEYWORD", key_word);
                            Toast.makeText(getApplication(), "HEHE", Toast.LENGTH_SHORT).show();



                    }
                    return true;
                }
                return false;
            }
        });
            }

        });
        actionBar.setCustomView(mView);
        actionBar.setDisplayShowCustomEnabled(true);
    }

    /// do Search
    private void doSeachNew() {



    }


    private class TabsPagerAdapterHehe extends FragmentPagerAdapter {

        public TabsPagerAdapterHehe(FragmentManager fm) {
            super(fm);
        }


        @Override
        public Fragment getItem(int i) {

            switch (i) {
                case 1:
                    return new FragmentSearch();
                case 2:
                    return new New_Status();
                default:
                    return new HomeTimelineFragment();
                //return new FragmentHomeTimeLine();
            }
        }

        @Override
        public int getCount() {
            return 3;
        }
    }

    public void hideSoftKeyboard() {
        if (getCurrentFocus() != null) {
            InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
            inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
        }
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        //  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }

    public static class CheckNetwork {


        static String TAG = CheckNetwork.class.getSimpleName();


        public static boolean isInternetAvailable(Context context) {
            NetworkInfo info = (NetworkInfo) ((ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

            if (info == null) {
                Log.d(TAG, "no internet connection");
                return false;
            } else {
                if (info.isConnected()) {
                    Log.d(TAG, " internet connection available...");
                    return true;
                } else {
                    Log.d(TAG, " internet connection");
                    return true;
                }

            }
        }
    }

}

그리고 클래스 내 조각

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_search_list, container, false);
    Bundle bundle = this.getArguments();
    keyword = bundle.getString("keyword");
    Log.e("KeyWord", keyword);
    return view;
}

그리고 이것은 내 버그입니다

10-21 14:11:26.639    7278-7278/vn.seesaa.nguyentrunghieu.logintwitter E/SetSizeByPercent﹕ java.lang.NullPointerException
10-21 14:11:26.709    7278-7278/vn.seesaa.nguyentrunghieu.logintwitter E/client﹕ vn.seesaa.nguyentrunghieu.client.TwitterClient@44a626e0
10-21 14:11:26.849    7278-7278/vn.seesaa.nguyentrunghieu.logintwitter E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: vn.seesaa.nguyentrunghieu.logintwitter, PID: 7278
java.lang.NullPointerException
        at vn.seesaa.nguyentrunghieu.viewpager.FragmentSearch.onCreateView(FragmentSearch.java:73)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1026)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1207)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1572)
        at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:545)
        at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1106)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:952)
        at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1474)
        at android.view.View.measure(View.java:16628)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
        at android.view.View.measure(View.java:16628)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
        at android.view.View.measure(View.java:16628)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at android.view.View.measure(View.java:16628)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
        at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327)
        at android.view.View.measure(View.java:16628)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2298)
        at android.view.View.measure(View.java:16628)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1920)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1117)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1299)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5692)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
        at android.view.Choreographer.doCallbacks(Choreographer.java:574)
        at android.view.Choreographer.doFrame(Choreographer.java:544)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:212)
        at android.app.ActivityThread.main(ActivityThread.java:5151)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
        at dalvik.system.NativeStart.main(Native Method)

부디! 버그 수정을 도와주세요 !! 감사합니다!

파벨 스트 렐 첸코

Fragment 인스턴스를 만드는 방식을 변경해야할까요? 예를 들어 Android Studio에서 콜백없이 조각 팩토리 메서드를 사용하여 새 BlankFragment를 만들려면 다음을 생성합니다.

/**
 * A simple {@link Fragment} subclass.
 * Use the {@link BlankFragment#newInstance} factory method to
 * create an instance of this fragment.
 */
public class BlankFragment extends Fragment {
    // TODO: Rename parameter arguments, choose names that match
    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    // TODO: Rename and change types of parameters
    private String mParam1;
    private String mParam2;


    /**
     * Use this factory method to create a new instance of
     * this fragment using the provided parameters.
     *
     * @param param1 Parameter 1.
     * @param param2 Parameter 2.
     * @return A new instance of fragment BlankFragment.
     */
    // TODO: Rename and change types and number of parameters
    public static BlankFragment newInstance(String param1, String param2) {
        BlankFragment fragment = new BlankFragment();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }

    public BlankFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_blank, container, false);
    }
}

귀하의 경우 ARG_PARAM1은 "키워드"입니다. 그리고 모든 것이 당신의 필요입니다-다음과 같이 팩토리 방법으로 조각을 만드십시오.

BlankFragment fragment = BlankFragment.newInstance("hello")

이것이 당신을 도울 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

활동에서 조각으로 데이터 보내기

분류에서Dev

활동에서 TabLayout 조각으로 데이터 보내기

분류에서Dev

조각에서 활동 Android C #으로 데이터 보내기

분류에서Dev

하위 활동에서 기본 활동으로 데이터 보내기

분류에서Dev

활동 2에서 활동 1 조각으로 데이터 보내기

분류에서Dev

클래스에서 winform으로 데이터 보내기

분류에서Dev

활동에서 서비스로 데이터 보내기 업데이트 됨

분류에서Dev

위임을 사용하여 UIView 하위 클래스에서 UIViewController로 데이터 보내기

분류에서Dev

AsyncTask 클래스에서 활동으로 데이터 가져 오기

분류에서Dev

결과를 위해 한 활동에서 다른 시작 활동으로 데이터 보내기

분류에서Dev

활동에서 조각으로 데이터 전달 (조각에서 활동에 액세스하여) 클래스 캐스트 예외 제공

분류에서Dev

활동에서 조각으로 다시 데이터를 보내는 방법

분류에서Dev

사용자가 Android에서 뒤로 버튼을 클릭하면 활동에서 조각으로 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

뷰 페이저에서 활동으로 데이터 보내기

분류에서Dev

이미 실행중인 고정 서비스에서 활동으로 데이터 보내기

분류에서Dev

위치 클래스에서 ViewController로 좌표 정보 보내기

분류에서Dev

Parcelable 개체가있는 활동 대신 조각으로 데이터 보내기

분류에서Dev

'활동을 확장하는'클래스에서 '조각을 확장하는'클래스로 데이터 전달

분류에서Dev

서비스에서 활동으로 직렬화 할 수없는 데이터 보내기

분류에서Dev

별도의 파일로 클래스간에 데이터 보내기

분류에서Dev

클래스를 예측하기 위해 Matlab에서 Weka로 데이터를 가져오고 내보내는 방법은 무엇입니까?

분류에서Dev

서비스의 배열에 위치 데이터를 저장하고 해당 배열을 활동 / 조각으로 보내는 방법은 무엇입니까? [Android / 자바]

분류에서Dev

수명주기 관찰자 인 클래스에서 활동으로 데이터 전달

분류에서Dev

동일한 조각 활동 내에서 조각에서 조각으로 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

슈퍼 클래스로 캐스팅 한 후 하위 클래스에서 데이터 가져 오기

분류에서Dev

애플릿 범위 내에서 로봇 클래스 클릭

분류에서Dev

한 활동의 버튼 클릭 이벤트에서 백그라운드에있는 다른 활동의 편집 텍스트로 데이터 보내기

분류에서Dev

어댑터 클래스에서 활동 클래스로 텍스트보기 값 전달

분류에서Dev

트위스트 서버에서 특정 클라이언트로 데이터 보내기

Related 관련 기사

  1. 1

    활동에서 조각으로 데이터 보내기

  2. 2

    활동에서 TabLayout 조각으로 데이터 보내기

  3. 3

    조각에서 활동 Android C #으로 데이터 보내기

  4. 4

    하위 활동에서 기본 활동으로 데이터 보내기

  5. 5

    활동 2에서 활동 1 조각으로 데이터 보내기

  6. 6

    클래스에서 winform으로 데이터 보내기

  7. 7

    활동에서 서비스로 데이터 보내기 업데이트 됨

  8. 8

    위임을 사용하여 UIView 하위 클래스에서 UIViewController로 데이터 보내기

  9. 9

    AsyncTask 클래스에서 활동으로 데이터 가져 오기

  10. 10

    결과를 위해 한 활동에서 다른 시작 활동으로 데이터 보내기

  11. 11

    활동에서 조각으로 데이터 전달 (조각에서 활동에 액세스하여) 클래스 캐스트 예외 제공

  12. 12

    활동에서 조각으로 다시 데이터를 보내는 방법

  13. 13

    사용자가 Android에서 뒤로 버튼을 클릭하면 활동에서 조각으로 데이터를 보내는 방법은 무엇입니까?

  14. 14

    뷰 페이저에서 활동으로 데이터 보내기

  15. 15

    이미 실행중인 고정 서비스에서 활동으로 데이터 보내기

  16. 16

    위치 클래스에서 ViewController로 좌표 정보 보내기

  17. 17

    Parcelable 개체가있는 활동 대신 조각으로 데이터 보내기

  18. 18

    '활동을 확장하는'클래스에서 '조각을 확장하는'클래스로 데이터 전달

  19. 19

    서비스에서 활동으로 직렬화 할 수없는 데이터 보내기

  20. 20

    별도의 파일로 클래스간에 데이터 보내기

  21. 21

    클래스를 예측하기 위해 Matlab에서 Weka로 데이터를 가져오고 내보내는 방법은 무엇입니까?

  22. 22

    서비스의 배열에 위치 데이터를 저장하고 해당 배열을 활동 / 조각으로 보내는 방법은 무엇입니까? [Android / 자바]

  23. 23

    수명주기 관찰자 인 클래스에서 활동으로 데이터 전달

  24. 24

    동일한 조각 활동 내에서 조각에서 조각으로 데이터를 보내는 방법은 무엇입니까?

  25. 25

    슈퍼 클래스로 캐스팅 한 후 하위 클래스에서 데이터 가져 오기

  26. 26

    애플릿 범위 내에서 로봇 클래스 클릭

  27. 27

    한 활동의 버튼 클릭 이벤트에서 백그라운드에있는 다른 활동의 편집 텍스트로 데이터 보내기

  28. 28

    어댑터 클래스에서 활동 클래스로 텍스트보기 값 전달

  29. 29

    트위스트 서버에서 특정 클라이언트로 데이터 보내기

뜨겁다태그

보관