문제

그래,그래서 내가 사용하는 셜록을 표시하는 탭,각각에 대한 하나의 조각이 있습니다.나만 4classes:중 하나를 나의 주요 활동에 대한 두 사람은 나의 단편,그리고 하나 TabListener.모든 확인해야(나는 매우 동일하지 않고 프로그램 Sherlcock,작업에 4.0 장치),그래서 나는 이유를 이해할 수 없는 nullpointerexception 은.

여기에서의 오류

05-18 17:46:57.197: E/AndroidRuntime(9312): FATAL EXCEPTION: main
05-18 17:46:57.197: E/AndroidRuntime(9312): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.micky.testing/com.micky.testing.SherlockTestActivity}: java.lang.NullPointerException
...
05-18 17:46:57.197: E/AndroidRuntime(9312): Caused by: java.lang.NullPointerException
05-18 17:46:57.197: E/AndroidRuntime(9312):     at com.micky.testing.MyTabListener.onTabSelected(MyTabListener.java:21)
...
05-18 17:46:57.197: E/AndroidRuntime(9312):     at com.micky.testing.SherlockTestActivity.onCreate(SherlockTestActivity.java:39)

여기에는 하나의 조각:
HomeFragment

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.actionbarsherlock.app.SherlockFragment;

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

여기에 내 tabListener:
MyTabListener

public class MyTabListener implements TabListener {

public SherlockFragment fragment;

MyTabListener(SherlockFragment fr) {
    Log.d("MYTAG", "Creating a fragmentListener w/ " + fr);
    this.fragment = fr;
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub
    Log.d("TAG", "" + fragment);
    ft.replace(R.id.fragment_container, fragment);
}

}

고 내 주요 활동:
SherlockTestActivity

public class SherlockTestActivity extends SherlockActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    //We take the support actionbar
    ActionBar ab = getSupportActionBar();
    //We set to navigationmode with tabs
    ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    //we create the tabs
    ActionBar.Tab homeTab = ab.newTab().setText("Home");
    ActionBar.Tab tagsTab = ab.newTab().setText("Tags");

    //We create the fragments
    SherlockFragment homeFragment = new HomeFragment();
    SherlockFragment tagsFragment = new TagFragments();

    //And we set the tabsListener;
    homeTab.setTabListener(new MyTabListener(homeFragment));
    tagsTab.setTabListener(new MyTabListener(tagsFragment));

    Log.d("","" + homeTab);
    ab.addTab(homeTab);
    ab.addTab(tagsTab);
}

Ok,그래서 오류가 있을 것 같을 때 발생 추가 탭을 나 실행 바.그 때 나를 추가하지 않으 TabListener 탭 없 오류가 있습니다.코드 ft.replace(R.id.fragment_container, fragment); (MyTabListener)문제가 될 것 같다,하지만 할 수 없을 관리하는 이유를 이해합니다.조각되지 않 null(초기화면 instanciating 새로운 tabListener),그리고 아무 이유도 없는 fragment_container 은 잘못된 것입니다.

그렇다면 사람을 관리할 수 있습이 나를 도와 주위에 여기!감사합니다!

도움이 되었습니까?

해결책

당신이해야 연장 SherlockFragmentActivity 대신 SherlockActivity.사용 조각 때 활동을 관리하 조각이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top