Android-碎片问题';s储蓄
我已经检查了文档中的更改和可能的修复,但是现在我得到了activity ComponentInfo错误以及您提供的链接提供的新代码。编辑代码如下 MainActivity.javaAndroid-碎片问题';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
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;
}