दिलचस्प पोस्ट
पायथन के दुभाषिया के आउटपुट को कैप्चर कैसे करें और टेक्स्ट विजेट में दिखाएं? मैं एक सी # समयसीप के लिए एक ISO8601 टाइमस्पेन कैसे परिवर्तित करूं? एंड्रॉइड वेबदृश्य के साथ फेसबुक लॉगिन काम करना क्या कोई बाधा है जो मेरी सामान्य पद्धति को संख्यात्मक प्रकारों पर रोक देती है? फीचर शाखा रिबेस के बाद गिट धक्का खारिज कर दिया गया निर्माण के द्वारा हाशसेट मूल्यों को कैसे प्रारंभ करें? लूप या कंडिशल्स के बिना 1 से 1000 प्रिंटिंग .Net regex: शब्द चरित्र \ w क्या है? Event.stopPropagation और event.preventDefault के बीच क्या अंतर है? सीएसएस – डिवेल का एक ऊंचाई प्राप्त करें सी ++ में पॉलीमॉर्फिक ऑब्जेक्ट कॉपी करना आविष्कारक रचना करते हैं, मोनाड्स नहीं करते हैं समस्या जब क्लोनिंग jQuery के यूआई datepicker सी # का उपयोग करके डाली गई पंक्ति का आईडी प्राप्त करें SQLite में AUTOINCREMENT के लिए प्रारंभ मूल्य सेट करें

वरीयता स्क्रीन पर एक बटन कैसे जोड़ें

क्या वरीयताओं के स्क्रीन के नीचे एक बटन जोड़ने और स्क्रॉल करने पर उन्हें सही काम करने का कोई तरीका है?

Solutions Collecting From Web of "वरीयता स्क्रीन पर एक बटन कैसे जोड़ें"

प्राथमिकताओं के स्वरूप को अनुकूलित करने के लिए एक अन्य समाधान है

बटनों के साथ एक सामान्य एक्सएमएल लेआउट डिजाइन करें या आप जो भी मानक प्राथमिकताओं में जोड़ना चाहते हैं अपने लेआउट में एक ListView शामिल करें और इसे आईडी @android:id/list

मान लें कि हम लेआउट फाइल res/layout/main.xml । यह कुछ ऐसा दिख सकता है:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <Button android:text="This is a button on top of all preferences." android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> 

अपनी PreferenceActivity , अपने onCreate इन दो पंक्तियों को जोड़ें:

 addPreferencesFromResource(R.xml.preferences); setContentView(R.layout.main); 

आपके लेआउट में ListView को फिर से res/xml/preferences.xml में सामान्य तरीके से परिभाषित वरीयताओं द्वारा प्रतिस्थापित किया जाएगा।

मुझे पता है कि यह थोड़ा देर हो चुकी है, लेकिन मुझे लगता है कि मैक्स के प्रशंसनीय समाधान की तुलना में मुझे बहुत अच्छा लगता है।

आप प्राथमिकता सूची सूची दृश्य में बस एक पाद लेख जोड़ सकते हैं (या यदि आप बटन को शीर्ष पर रखना चाहते हैं, शीर्षक):

 public class MyActivity extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); ListView v = getListView(); v.addFooterView(new Button(this)); } } 

मुझे उम्मीद है इससे किसी को सहायता मिलेगी।

नीचे दिए गए उदाहरण पृष्ठ के निचले भाग में एक बटन प्रस्तुत करेंगे (मामले में कोई भी अभी भी दिलचस्पी है)।

एक रैयनियर लेआउट के मामले में आप भी वज़न लागू कर सकते हैं; यह आवश्यक है क्योंकि लिस्ट्यूव्यू * fill_parent * पर सेट है मैं आमतौर पर * एंड्रॉइड जोड़कर ऐसा करता हूं: layout_weight * s:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="10"/> <Button android:text="This is a button on top of all preferences." android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"/> </LinearLayout> 

नीचे दिए गए स्पष्टीकरण 100% नहीं है लेकिन यह आपको समझने में मदद करेगा …

 +-- View Port (linear layout) | +-- List View (this is where the preferences will go) | | | | | +-- +-- +-- | Button (which was pushed out of view by the fillparent of ListView +-- 

आप यह भी कह सकते हैं, क्योंकि बटन का वजन नहीं है; बटन को 0dp ऊंचाई पर गाया गया है

अब layout_weigths के साथ यह जोड़ा बटन इनव्यू प्रस्तुत करना होगा

 +-- View Port (linear layout) | +-- List View (this is where the preferences will go) | | | | | +-- | +-- | | Button (which was pushed out of view by the fillparent of ListView | +-- +-- 

दरअसल, एक समाधान है यहाँ एक कोड है, मैं आशा करता हूं, यह किसी के लिए उपयोगी होगा। यह स्क्रीन के निचले भाग में 3 विकल्प और 2 बटन की तरह दिखता है, स्क्रीन रिज़ॉल्यूशन से स्वतंत्र (इसे 240 के रूप में निचला किया गया था)

 package com.myapplication.gui; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceScreen; import android.view.Display; import android.view.Gravity; import android.view.WindowManager; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ScrollView; import com.myproject.general.HeightListView; import com.myapplication.R; public class FilterActivity extends PreferenceActivity { private LinearLayout rootView; private LinearLayout buttonView; private Button buttonDone; private Button buttonRevert; private ListView preferenceView; private LinearLayout gradientView; private ScrollView scrollRoot; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); int height = display.getHeight(); int width = height > 240 ? display.getWidth() : display.getWidth() - 4; scrollRoot = new ScrollView(this); scrollRoot.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); rootView = new LinearLayout(this); rootView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); rootView.setOrientation(LinearLayout.VERTICAL); buttonView = new LinearLayout(this); buttonView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); buttonView.setOrientation(LinearLayout.HORIZONTAL); buttonView.setGravity(Gravity.BOTTOM); gradientView = new LinearLayout(this); gradientView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); gradientView.setOrientation(LinearLayout.HORIZONTAL); gradientView.setBackgroundResource(R.drawable.gradient); gradientView.setPadding(0, 5, 0, 0); gradientView.setBackgroundResource(R.drawable.gradient); buttonDone = new Button(this); buttonDone.setText(R.string.filterButton_Done); buttonDone.setLayoutParams(new LayoutParams(width/2, LayoutParams.WRAP_CONTENT)); gradientView.addView(buttonDone); buttonRevert = new Button(this); buttonRevert.setText(R.string.filterButton_Revert); buttonRevert.setLayoutParams(new LayoutParams(width/2, LayoutParams.WRAP_CONTENT)); gradientView.addView(buttonRevert); buttonView.addView(gradientView); preferenceView = new HeightListView(this); preferenceView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); preferenceView.setId(android.R.id.list); PreferenceScreen screen = createPreferenceHierarchy(); screen.bind(preferenceView); preferenceView.setAdapter(screen.getRootAdapter()); rootView.addView(preferenceView); rootView.addView(buttonView); if (height > 240) { this.setContentView(rootView); } else { scrollRoot.addView(rootView); this.setContentView(scrollRoot); } setPreferenceScreen(screen); } private PreferenceScreen createPreferenceHierarchy() { PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this); PreferenceScreen pref1 = getPreferenceManager().createPreferenceScreen(this); pref1.setKey("pref1"); pref1.setTitle("Title"); pref1.setSummary("Summary"); root.addPreference(pref1); PreferenceScreen pref2 = getPreferenceManager().createPreferenceScreen(this); pref2.setKey("pref2"); pref2.setTitle("Title"); pref2.setSummary("Summary"); root.addPreference(pref2); PreferenceScreen pref3 = getPreferenceManager().createPreferenceScreen(this); pref3.setKey("pref3"); pref3.setTitle("Title"); pref3.setSummary("Summary"); root.addPreference(pref3); return root; } } 

यह होगा कि रोनी के उदाहरण में गतिविधि में कोड कैसा दिखता है। मेरा इरादा स्क्रीन के निचले हिस्से में एक मेनू डालना था।

 /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.prefs); addPreferencesFromResource(R.xml.prefs); /* LayoutInflater CX = getLayoutInflater(); CX.inflate(R.layout.main,null);*/ // TODO Auto-generated method stub } 
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="@dimens/listview_height" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="This is a button on top of all preferences." /> </RelativeLayout> 

रिनी @ रोनी, रिलेटिव लेआउट का उपयोग करें और सूची दृश्य के लेआउट_हेइट के लिए एक ऊंचाई सेट करें, और फिर बटन का लेआउट सेट करें_अलग ​​parent.bottom = "true", यह वरीयता स्क्रीन के नीचे एक बटन प्रदान कर सकता है; तो @ अधिकतम के रास्ते का उपयोग करें यह मेरी जरूरतों के लिए काम करता है

एंड्रॉइड मानक दृष्टिकोण के लिए एक्शन बार में एक्शन बटन जोड़ना भी संभव है।

 public class PrefActivity extends PreferenceActivity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu items for use in the action bar MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.preference_header_menu, menu); return super.onCreateOptionsMenu(menu); } } <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_add" android:icon="@drawable/ic_menu_add_dark" android:title="@string/menu_action_add_title" android:showAsAction="always" /> </menu> 

आपको सामान्य गतिविधि के अंतर्गत प्राथमिकता का उपयोग करने और गतिविधि लेआउट में बटन जोड़ना होगा।

 public class SettingActivity extends Activity { UserProfileViewModel userProfileViewModel = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_setting); getFragmentManager().beginTransaction() .replace(R.id.content, new SettingsFragment()) .commit(); } private class SettingsFragment extends PreferenceFragment { public SettingsFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.pref_main); } } } 

SettingActivity.java

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/buttonSave"/> <Button android:id="@+id/buttonSave" android:text="Save" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </RelativeLayout> 

activity_setting

यहां छवि विवरण दर्ज करें

वरीयता गतिविधि में कस्टम दृश्य यह एंड्रॉइड में प्राधानिकता में कस्टम दृश्य जोड़ने में मदद करेगा।

Main.xml बनाएं, केवल एक आवश्यक दृश्य एक ListView है, आईडी के साथ: android:id="@android:id/list"

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:weightSum="1"> <ListView android:id="@android:id/list" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="0dp"> </ListView> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> 

CustomPreferenceActivity.java बनाएँ

 public class CustomPreferenceActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); addPreferencesFromResource(R.xml.settings); //setup any other views that you have TextView textView = (TextView) findViewById(R.id.textView); textView.setText("View Added"); } } 

निम्नलिखित अपनी वरीयता स्क्रीन पर एक क्लिक करने योग्य बटन जोड़ने का एक आसान समाधान है। यह आसान बना दिया है क्योंकि वरीयताएँ पहले से ही एंड्रॉइड में जगह आरक्षित हैं: विजेटलेआउट और बटन एंड्रॉइड के साथ क्लिक कर सकते हैं: onClick।

पहले सामग्री के साथ एक बटन। Xml बनाएँ

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:text="BUTTON" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/button" android:onClick="onButtonClick"/> </LinearLayout> 

अब आपकी preferences.xml में, वरीयता जोड़ें

 <Preference android:key="button" android:title="Title" android:summary="Summary" android:widgetLayout="@layout/button" /> 

आपकी प्राथमिकता अब केवल एक onButtonClick सदस्य होना चाहिए

 public class MainActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.main_preferences); } public void onButtonClick(View v) { Log.d("Button", "Yeah, button was clicked"); } }