Android-碎片问题';s储蓄

Android-碎片问题';s储蓄,android,android-fragments,tabs,Android,Android Fragments,Tabs,我已经检查了文档中的更改和可能的修复,但是现在我得到了activity ComponentInfo错误以及您提供的链接提供的新代码。编辑代码如下 MainActivity.java public class TabMainActivity extends Activity { ActionBar.Tab Tab1, Tab2, Tab3; FragmentTab1 fragmentTab1 = new FragmentTab1(); FragmentTab2 fragm

我已经检查了文档中的更改和可能的修复,但是现在我得到了activity ComponentInfo错误以及您提供的链接提供的新代码。编辑代码如下

MainActivity.java

public class TabMainActivity extends Activity {

    ActionBar.Tab Tab1, Tab2, Tab3;
    FragmentTab1 fragmentTab1 = new FragmentTab1();
    FragmentTab2 fragmentTab2 = new FragmentTab2();
    FragmentTab3 fragmentTab3 = new FragmentTab3();

    ArrayList<ListData> dataArray;
    ListView listView;
    ArrayList<DATA> data = new ArrayList<DATA>();
    private static String url = "http://80.240.142.93/nokta/casestudy.json";
    private static final String TAG_VIDEO = "videos";
    private static final String TAG_TITLE = "title";
    private static final String TAG_THUMB = "thumbnail";
    private static final String TAG_LINK = "video_url";
    private ArrayList<HashMap<String, String>> videosList;
    Bundle bund = new Bundle();
    private Intent intent;
    private JSONArray listArray;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        bund.putInt("love", 5);
        fragmentTab1.setArguments(bund);

        setContentView(R.layout.tabmainactivity);


        videosList = new ArrayList<HashMap<String,String>>();
        if (isNetworkAvailable()){
            new JSONParse().execute();
        }else{
            showMessage("There is no internet connection");
        }   

        android.app.FragmentManager fm = getFragmentManager();
        android.app.FragmentTransaction ft = fm.beginTransaction();
        //ft.replace(R.id.fragment_container, fragmentTab1);
        //ft.addToBackStack(null);
        //ft.commit();


        ActionBar actionBar = getActionBar();

        // Hide Actionbar Icon
        actionBar.setDisplayShowHomeEnabled(false);

        // Hide Actionbar Title
        actionBar.setDisplayShowTitleEnabled(false);

        // Create Actionbar Tabs
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);


        Tab1 = actionBar.newTab().setText("TAB1").setTabListener(new TabListener<FragmentTab1>(this,"tab1",FragmentTab1.class));
        actionBar.addTab(Tab1);
        Tab2 = actionBar.newTab().setText("TAB2").setTabListener(new TabListener<FragmentTab2>(this,"tab2",FragmentTab2.class));
        actionBar.addTab(Tab2);
        Tab3 = actionBar.newTab().setText("TAB3").setTabListener(new TabListener<FragmentTab3>(this,"tab3",FragmentTab3.class));
        actionBar.addTab(Tab3);


        //ListView listV = fragmentTab1.getListView();

    }
    private class JSONParse extends AsyncTask<String, String, JSONObject> {
           @Override
             protected void onPreExecute() {
                 super.onPreExecute();

           }
           @Override
             protected JSONObject doInBackground(String... args) {
             JSONParser jParser = new JSONParser();
             // Getting JSON from URL
                 JSONObject json = jParser.getJSONfromURL(url);
                 return json;

            }
            @Override
              protected void onPostExecute(JSONObject json) {
              try {
                 listArray = json.getJSONArray(TAG_VIDEO);
                 {
                     prepareData(json);


                 }

             } catch (JSONException e) {
              e.printStackTrace();
             }
           }
              }

    private boolean isNetworkAvailable() {
        ConnectivityManager connectivityManager 
              = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
    private void showMessage(String txt){
        Toast.makeText(this, txt, Toast.LENGTH_LONG).show();
    }
    private void prepareData(JSONObject json){

        try {

        listArray = json.getJSONArray(TAG_VIDEO);
        dataArray = new ArrayList<ListData>();
        for (int i = 0; i < listArray.length(); i++){
        // tmp hashmap for single contact
        HashMap<String, String> video = new HashMap<String, String>();

        JSONObject c = listArray.getJSONObject(i);
        String jpeg_s = c.getString(TAG_THUMB);
        String title_s = c.getString(TAG_TITLE);
        String video_s = c.getString(TAG_LINK);

        video.put(TAG_THUMB, jpeg_s);
        video.put(TAG_TITLE, title_s);
        video.put(TAG_LINK, video_s);

        videosList.add(video);

        try {
            URL newurl = new URL(jpeg_s);
            Bitmap mIcon_val;
            mIcon_val = BitmapFactory.decodeStream(newurl.openConnection().getInputStream());
            ListData prepare_data = new ListData();
            prepare_data.setImage(mIcon_val);
            prepare_data.setName(title_s);
            dataArray.add(prepare_data);
            Log.e("BitMap", mIcon_val.toString());



        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }
        //android.app.FragmentManager fm = getFragmentManager();
        //android.app.FragmentTransaction ft = fm.beginTransaction();
        //ft.replace(R.id.fragment_container, fragmentTab1);
        //ft.addToBackStack(null);
        //ft.commit();
        ListView lw = fragmentTab1.getListView();
        lw.setAdapter(new CustomAdapter(this, dataArray));

        } catch (JSONException e) {
        e.printStackTrace();
        }
        /*
        listView.setAdapter(new CustomAdapter(this, dataArray));
        Log.e("LW", listView.getItemAtPosition(1).toString());*/


        Log.e("returnJSON", videosList.toString());
        }


}
公共类TabMainActivity扩展活动{
ActionBar.选项卡Tab1、Tab2、Tab3;
FragmentTab1 FragmentTab1=新的FragmentTab1();
FragmentTab2 FragmentTab2=新的FragmentTab2();
FragmentTab3 FragmentTab3=新的FragmentTab3();
ArrayList数据数组;
列表视图列表视图;
ArrayList数据=新的ArrayList();
专用静态字符串url=”http://80.240.142.93/nokta/casestudy.json";
私有静态最终字符串标记_VIDEO=“videos”;
私有静态最终字符串标记_TITLE=“TITLE”;
私有静态最终字符串标记_THUMB=“缩略图”;
私有静态最终字符串TAG\u LINK=“video\u url”;
私人ArrayList视频列表;
Bundle bund=新Bundle();
私人意图;
私有JSONArray列表数组;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(策略);
外滩putInt(“爱”,5);
fragmentTab1.setArguments(外滩);
setContentView(R.layout.tabmainactivity);
videosList=新的ArrayList();
if(isNetworkAvailable()){
新建JSONParse().execute();
}否则{
showMessage(“没有互联网连接”);
}   
android.app.FragmentManager fm=getFragmentManager();
android.app.FragmentTransaction ft=fm.beginTransaction();
//ft.replace(R.id.fragment_容器,fragmentTab1);
//ft.addToBackStack(空);
//ft.commit();
ActionBar ActionBar=getActionBar();
//隐藏操作栏图标
actionBar.setDisplayShowHomeEnabled(false);
//隐藏操作栏标题
actionBar.setDisplayShowTitleEnabled(false);
//创建操作栏选项卡
actionBar.setNavigationMode(actionBar.NAVIGATION\u MODE\u选项卡);
Tab1=actionBar.newTab().setText(“Tab1”).setTabListener(新的TabListener(这个“Tab1”,FragmentTab1.class));
actionBar.addTab(表1);
Tab2=actionBar.newTab().setText(“Tab2”).setTabListener(新的TabListener(这个“Tab2”,FragmentTab2.class));
actionBar.addTab(表2);
Tab3=actionBar.newTab().setText(“Tab3”).setTabListener(新的TabListener(这个“Tab3”,FragmentTab3.class));
actionBar.addTab(表3);
//ListView listV=fragmentTab1.getListView();
}
私有类JSONParse扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
}
@凌驾
受保护的JSONObject doInBackground(字符串…args){
JSONParser jParser=新的JSONParser();
//从URL获取JSON
JSONObject json=jParser.getJSONfromURL(url);
返回json;
}
@凌驾
受保护的void onPostExecute(JSONObject json){
试一试{
listArray=json.getJSONArray(TAG_视频);
{
prepareData(json);
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
}
专用布尔值isNetworkAvailable(){
连接管理器连接管理器
=(ConnectionManager)getSystemService(Context.CONNECTIVITY_服务);
NetworkInfo activeNetworkInfo=connectivityManager.getActiveNetworkInfo();
返回activeNetworkInfo!=null&&activeNetworkInfo.isConnected();
}
私有void showMessage(字符串txt){
Toast.makeText(this,txt,Toast.LENGTH_LONG).show();
}
私有void prepareData(JSONObject json){
试一试{
listArray=json.getJSONArray(TAG_视频);
dataArray=新的ArrayList();
对于(int i=0;i
TabListener.java

public class TabListener<T extends Fragment> implements ActionBar.TabListener {


    private Fragment mFragment;
    private final Activity mActivity;
    private final String mTag;
    private final Class<T> mClass;

    public TabListener(Activity activity, String tag, Class<T> clz) {
        mActivity = activity;
        mTag = tag;
        mClass = clz;
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub
        String backStateName = mFragment.getTag();
        if (mFragment == null) {
            // If not, instantiate and add it to the activity
            mFragment = Fragment.instantiate(mActivity, mClass.getName());
            ft.add(android.R.id.content, mFragment, mTag);
        } else {
            // If it exists, simply attach it in order to show it
            ft.attach(mFragment);
        }   
        Log.e("BAKSTAE", backStateName);

    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub
        if (mFragment != null) {
            // Detach the fragment, because another one is being attached
            ft.detach(mFragment);
        }

    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub

    }
}
公共类TabListener实现ActionBar.TabListener{
私人碎片;
私人最终活动能力;
私有最终字符串mTag;
脉波重复间隔
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle state)  {
     if (mMyView == null) {
         mMyView = new MyView(getActivity());
     } else {
         ((ViewGroup) mMyView.getParent()).removeView(mMyView);
     }

     return mPuzzleView; 
}