मैं एक ऐप बनाने की कोशिश कर रहा हूं जो एक्शन बार टैब को लागू करेगा। टैब में से एक में MapFragment होना चाहिए।एक्शन बार टैब में मैपफ्रैगमेंट
मैं टैब के साथ एक एक्शन बार कैसे कार्यान्वित कर सकता हूं, जिसमें से एक नक्शा टुकड़ा है?
क्या आप इस के साथ आगे बढ़ने के तरीके में मेरी सहायता कर सकते हैं?
यहाँ मैं अब तक है:
मुख्य वर्ग
package com.nfc.demo;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
public class NFCDemoActivity extends Activity {
Tab selectedTab = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar bar = getActionBar();
bar.setDisplayShowHomeEnabled(false);
bar.setDisplayShowTitleEnabled(false);
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.setCustomView(R.layout.main);
ActionBar.Tab mapTab = bar.newTab().setText("Map");
ActionBar.Tab settingsTab = bar.newTab().setText("Settings");
ActionBar.Tab aboutTab = bar.newTab().setText("About");
MapFragment mapFragment = new MapFragment();
SettingsFragment settingsFragment = new SettingsFragment();
AboutFragment aboutFragment = new AboutFragment();
mapTab.setTabListener(new TabListener(mapFragment));
settingsTab.setTabListener(new TabListener(settingsFragment));
aboutTab.setTabListener(new TabListener(aboutFragment));
Tab selectedTab = (Tab) getLastNonConfigurationInstance();
if (selectedTab == null) {
bar.addTab(mapTab, false);
bar.addTab(settingsTab, false);
bar.addTab(aboutTab, true);
}
setContentView(R.layout.main);
}
public Object onRetainNonConfigurationInstance() {
return selectedTab;
}
protected boolean isRouteDisplayed() {
return false;
}
protected class TabListener implements ActionBar.TabListener {
private Fragment fragment;
public TabListener(Fragment fragment) {
this.fragment = fragment;
}
public void onTabSelected(Tab tab, FragmentTransaction fragmentTransaction) {
fragmentTransaction.replace(R.id.mainFragment, this.fragment, null);
selectedTab = tab;
}
public void onTabUnselected(Tab tab, FragmentTransaction fragmentTransaction) {
fragmentTransaction.remove(this.fragment);
}
public void onTabReselected(Tab tab, FragmentTransaction fragmentTransaction) {
//do nothing
}
}
}
टुकड़ा वर्गों सब सिर्फ एक .xml लेआउट के साथ एक inflater लौट रहे हैं।
एक्सएमएल लेआउट:
main.xml (मानचित्र इस एक्सएमएल फ़ाइल पर होना चाहिए)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mainFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
</LinearLayout>
settings.xml और about.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView123"
android:text="asdfg"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
मैं करने की कोशिश कर रहा है पता लगाएं कि कुछ दिनों तक कैसे आगे बढ़ना है, लेकिन मैं वास्तव में उलझन में हूं। किसी भी मदद/सुझावों की सराहना की जाएगी।
इसके अलावा, getLastNonConfigurationInstance()
के बारे में क्या? यह बहिष्कृत है।
माफ करना, मैंने सोचा था कि मेरे सवाल था स्पष्ट। मैंने इसे संपादित किया, लेकिन अगर मुझे और सुधार की आवश्यकता है तो मुझे बताएं। – hermann
अच्छा, आपका समग्र प्रश्न स्पष्ट है, लेकिन फिर आप हमें कोड का एक गुच्छा सौंपते हैं और यह नहीं बताते कि उस कोड के साथ समस्या क्या है। एक एक्शन बार टैब में 'MapFragment' होने के बाद कोई अन्य खंड एक एक्शन बार टैब में होने से अलग नहीं है। – CommonsWare
मुझे यह पता लगाना प्रतीत नहीं होता कि यह कैसे करना है, हालांकि। बाइनरी एक्सएमएल फ़ाइल लाइन # 2:: दूसरे के साथ आईडी 0x7f040005, टैग अशक्त, या पैरेंट आईडी 0x1020002 डुप्लिकेट एक बार मैं main.xml में परिवर्तन और एक टुकड़ा जोड़ने मैं एक 'त्रुटि बढ़ा-चढ़ाकर वर्ग fragment' त्रुटि' java.lang.IllegalArgumentException की वजह से मिलता है com.google.android.gms.maps.MapFragment 12-28 21: 14: 07.9 9 1: ई/एंड्रॉइड रनटाइम (2618 9): \t atroid.app.Activity.onCreateView (Activity.java:4722) ' – hermann