@ গ্রেট উইলসন আপনাকে অনেক ধন্যবাদ! অ্যান্ড্রয়েড কোডিংয়ের এক নুবি হিসাবে, আমি বেশ কয়েক ঘন্টা ধরে পছন্দগুলি অসঙ্গতি ইস্যুটির সাথে আটকে আছি এবং আমি এটি এতটাই হতাশাবোধ করি যে তারা পুরানো এপিআই দ্বারা সমর্থিত নয় এমন কিছু পদ্ধতির / পদ্ধতির ব্যবহারকে অবজ্ঞা করেছে thus আপনার অ্যাপ্লিকেশনটিকে বিস্তৃত ডিভাইসগুলিতে কাজ করতে সমস্ত ধরণের workaround অবলম্বন করতে হবে। সত্যিই হতাশার!
আপনার ক্লাসটি দুর্দান্ত, কারণ এটি আপনাকে আগে যেমন পছন্দ করে নতুন APIs এ কাজ চালিয়ে যাওয়ার অনুমতি দেয় তবে এটি পশ্চাদপটে সামঞ্জস্যপূর্ণ নয়। যেহেতু আমি প্রি এপিআই 11 ডিভাইসগুলির পাশাপাশি নতুন নতুন এপিআইতে এটির কাজ করার জন্য আমি এটির সাথে বিস্তৃত ডিভাইসগুলি পৌঁছানোর চেষ্টা করছি:
import android.annotation.TargetApi;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
public class MyPrefsActivity extends PreferenceActivity
{
private static int prefs=R.xml.myprefs;
@Override
protected void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
try {
getClass().getMethod("getFragmentManager");
AddResourceApi11AndGreater();
} catch (NoSuchMethodException e) { //Api < 11
AddResourceApiLessThan11();
}
}
@SuppressWarnings("deprecation")
protected void AddResourceApiLessThan11()
{
addPreferencesFromResource(prefs);
}
@TargetApi(11)
protected void AddResourceApi11AndGreater()
{
getFragmentManager().beginTransaction().replace(android.R.id.content,
new PF()).commit();
}
@TargetApi(11)
public static class PF extends PreferenceFragment
{
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(MyPrefsActivity.prefs); //outer class
// private members seem to be visible for inner class, and
// making it static made things so much easier
}
}
}
সাফল্যের সাথে দুটি এমুলেটর পরীক্ষিত (2.2 এবং 4.2)।
আমার কোডটি কেন এত খারাপ দেখাচ্ছে:
আমি অ্যান্ড্রয়েড কোডিংয়ের নুব, আর আমি জাভা ফ্যান নই।
অবহেলিত সতর্কতা এড়াতে এবং গ্রহণের জন্য আমাকে গ্রন্থটিকে সঙ্কলনের অনুমতি দেওয়ার জন্য বাধ্য করার জন্য আমাকে এ্যানোটেশনগুলি গ্রহণ করতে হয়েছিল, তবে এগুলি কেবল শ্রেণি বা পদ্ধতিগুলিকেই প্রভাবিত করে বলে মনে হয়, সুতরাং এর সুবিধা নিতে আমাকে কোডটি দুটি নতুন পদ্ধতিতে সরিয়ে নিয়ে যেতে হয়েছিল।
আমি আমার এক্সএমএল রিসোর্স আইডি লিখতে চাই না যখনই আমি ক্লাসটি অনুলিপি করে একটি নতুন পছন্দঅ্যাক্টিভিটির জন্য পেস্ট করে রাখি, তাই এই মানটি সংরক্ষণ করার জন্য আমি একটি নতুন ভেরিয়েবল তৈরি করেছি।
আমি আশা করি এটি অন্য কারও কাজে লাগবে।
পিএস: আমার মতামত মতামত জন্য দুঃখিত, কিন্তু আপনি নতুন এসে এই জাতীয় প্রতিবন্ধগুলি খুঁজে পেলে হতাশ হওয়ার জন্য আপনি এটিকে সহায়তা করতে পারবেন না!