उन्नत में आपकी मदद के लिए धन्यवाद। और खेद है कि यह एक बहुत ही मूर्ख सवाल है, लेकिन मुझे इसे कहीं और नहीं मिल रहा है। जो मैं चाहता हूं, मूल रूप से, मेरे कोडपेजर में मौजूद पृष्ठों की कुल राशि निर्धारित करने के लिए, जब यह सब ठीक हो गया है, जैसे कि मेरे कोड में। मैंने कोशिश की है (बाद के संस्करण पर) "आकार परिवर्तनीय" को एफ के रूप में जोड़ना (देखें, फर्स्टफ्रैगमेंट)। यह एक ज्ञात संख्या नहीं है, क्योंकि उपयोगकर्ता इनपुट के रूपों की संख्या (दृश्य) मैं बनाउंगा, और इसे एक उद्देश्य के रूप में फर्स्टफ्रैगमेंट में भेज दूंगा। तो मैंने कोशिश की है:एक दृश्य पेजर में "अंतिम पृष्ठ" कैसे ढूंढें। या विचारों की कुल 'संख्या'। एंड्रॉइड डेवलपमेंट
Fragment f = new UserFragment();
Bundle bundl = new Bundle();
bundl.putInt("pagenumbers", size);
f.setArguments(bundl);
lf.add(f);
फर्स्ट फ्रैगमेंट के अंदर। लेकिन जब उपयोगकर्ताफ्रेगमेंट "pagenumbers" के तहत अपने तर्क निष्कर्ष निकालता है तो यहलौटा रहा है। फिर मैंने FragmentAdapter के अंदर रहने वाली getCount() विधि तक पहुंच प्राप्त करने का प्रयास किया, हालांकि, मुझे यकीन नहीं है कि इस बारे में कैसे जाना है, जब मुझे इसकी ज़रूरत है तो उपयोगकर्ताफ्रैगमेंट के अंदर एम।
मैं स्पष्टीकरण में मदद करने के लिए शायद क्या करने की कोशिश कर रहा हूं, क्या मैं "वर्तमान पृष्ठ जानकारी" निकालने जा रहा हूं जिसे अब मैं अपनी पिछली पोस्ट के लिए धन्यवाद कर रहा हूं और जिनकी मदद मिली। अब मैं देखना चाहता हूं कि "currentpage == size (// जो पृष्ठों की संख्या है। व्यूअरजर में कुल दृश्य)"। तो ऑनक्लिक विधि में आप UserFragment में देख सकते हैं, यदि यह अंतिम पृष्ठ है, और उपयोगकर्ता अगले पृष्ठ पर जाने के लिए बटन हिट करता है। मैं इसे किसी अन्य गतिविधि पर कूदना चाहता हूं, जहां यह सभी रूपों से एकत्र किए गए सभी स्पैरएरे डेटा का उपयोग करता है। (जिसे मुझे इस स्पैरएरे डेटा को एक इरादे में रखने के तरीके की सहायता चाहिए, मैं शायद इसके साथ एक नया प्रश्न बनाउंगा ... क्योंकि यह बहुत संबंधित नहीं है)। इसलिए यदि आप या तो मुझे काम करने के अपने मौजूदा प्रयासों (इसे ठीक से कैसे करें) प्राप्त करने में सहायता कर सकते हैं या बस एक पूरी तरह से नई विधि का सुझाव दे सकते हैं तो मैं खुश हूं। जब तक मैं इसे काम कर सकता हूं!
उन्नत में आपकी सभी सहायता के लिए बहुत बहुत धन्यवाद। कृपया सहायता कीजिए!
मेरे UserFragment.java:
package com.example.thinice;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class UserFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.layout_avgcalcform,
container, false);
final EditText markc = (EditText)rootView.findViewById(R.id.editTextASSMARK);
final EditText marktotc = (EditText)rootView.findViewById(R.id.editTextASSTOT);
final EditText assvalc = (EditText)rootView.findViewById(R.id.editTextASSWORTH);
int currentviewnum = ((FirstFragment) getActivity()).getPager().getCurrentItem();
String pagenum = Integer.toString(currentviewnum);
TextView tv = (TextView) rootView.findViewById(R.id.avg_testtv);
tv.setText(pagenum);
Button b = (Button) rootView.findViewById(R.id.button1);
b.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
int currentviewnum = ((FirstFragment) getActivity()).getPager().getCurrentItem();
((FirstFragment) getActivity()).saveData(new Question(markc.getText().toString(),marktotc.getText().toString(),assvalc.getText().toString()));
((FirstFragment) getActivity()).getPager().setCurrentItem(currentviewnum+1);
}
});
return rootView;
}
}
तुम मेरे कोड के किसी भी अधिक देखने के लिए की जरूरत है, तो कृपया मुझे बताएं। लेकिन यह वास्तव में मुझे परेशान कर रहा है। तो अगर कोई वहां मेरी मदद कर सकता है, तो यह शानदार होगा! उन्नत में आपका बहुत बहुत धन्यवाद।
FragmentAdapter.java:
package com.example.thinice;
import java.util.ArrayList;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.util.SparseArray;
import android.widget.Button;
public class FirstFragment extends FragmentActivity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_viewpager);
// Check whether the activity is using the layout version with
// the fragment_container FrameLayout. If so, we must add the first fragment
int size = getIntent().getExtras().getInt("numass1");
ViewPager vp = (ViewPager) findViewById(R.id.viewPager);
if (savedInstanceState != null) {
return;
}
ArrayList<Fragment> lf = new ArrayList<Fragment>();
for(int count=0; count<size; count ++){
Fragment f = new UserFragment();
lf.add(f);
}
FragmentAdapter hello = new FragmentAdapter(getSupportFragmentManager() , lf);
vp.setAdapter(hello);
// vp.setOffscreenPageLimit(size);
}
SparseArray<Question> questions = new SparseArray<Question>();
public void saveData(Question quest){
ViewPager vp = (ViewPager) findViewById(R.id.viewPager);
questions.put(vp.getCurrentItem(), quest);
}
public ViewPager getPager() {
ViewPager vp = (ViewPager) findViewById(R.id.viewPager);
return vp;
}
}
संपादित करें: अनुशंसित समाधान लिए Logcat फ़ाइल:
07-06 20:51:50.241: D/AndroidRuntime(8151): Shutting down VM
07-06 20:51:50.241: W/dalvikvm(8151): threadid=1: thread exiting with uncaught exception (group=0x415a4ba8)
07-06 20:51:50.251: E/AndroidRuntime(8151): FATAL EXCEPTION: main
07-06 20:51:50.251: E/AndroidRuntime(8151): Process: com.example.thinice, PID: 8151
07-06 20:51:50.251: E/AndroidRuntime(8151): java.lang.NullPointerException
07-06 20:51:50.251: E/AndroidRuntime(8151): at com.example.thinice.UserFragment.onCreateView(UserFragment.java:34)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.View.measure(View.java:16497)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.View.measure(View.java:16497)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
07-06 20:51:50.251: E/AndroidRuntime(8151): at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.View.measure(View.java:16497)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-06 20:51:50.251: E/AndroidRuntime(8151): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.View.measure(View.java:16497)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1912)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1109)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1291)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.Choreographer.doFrame(Choreographer.java:544)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.os.Handler.handleCallback(Handler.java:733)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.os.Handler.dispatchMessage(Handler.java:95)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.os.Looper.loop(Looper.java:136)
07-06 20:51:50.251: E/AndroidRuntime(8151): at android.app.ActivityThread.main(ActivityThread.java:5001)
07-06 20:51:50.251: E/AndroidRuntime(8151): at java.lang.reflect.Method.invokeNative(Native Method)
07-06 20:51:50.251: E/AndroidRuntime(8151): at java.lang.reflect.Method.invoke(Method.java:515)
07-06 20:51:50.251: E/AndroidRuntime(8151): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-06 20:51:50.251: E/AndroidRuntime(8151): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
07-06 20:51:50.251: E/AndroidRuntime(8151): at dalvik.system.NativeStart.main(Native Method)
package com.example.thinice;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.ViewGroup;
public class FragmentAdapter extends FragmentPagerAdapter{
private List<Fragment> fragments;
public FragmentAdapter(FragmentManager fragmentManager, ArrayList<Fragment> fragments) {
super(fragmentManager);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
//Bundle args = new Bundle();
//args.putInt("page_position", position+1);
//((Fragment) fragments).setArguments(args);
return this.fragments.get(position);
}
@Override
public void destroyItem (ViewGroup container, int position, Object object)
{
super.destroyItem(container, position, object);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
FirstFragment.java (यह मेरा गतिविधि है)
जब ViewPager निष्क्रिय होता है, तो कुल विचार हमेशा 3 (मध्य तक पहुंचते हैं) या 2 (किनारे पर पहुंचते हैं), अंतिम पृष्ठ 'currentItem + 1' है, यह नियम है, अनुमान की आवश्यकता नहीं है। – VinceStyling