দুঃখিত এটি যদি খুব ভার্বোজ হয় বা খুব দেরিতে হয় তবে এই কাজটি করার জন্য এটিই আমি খুঁজে পেতাম। সবচেয়ে জটিল কারণটি ছিল যে জাভাটি রেফারেন্স ফাংশনগুলিতে পাস করে না, সুতরাং প্রাপ্তি --- অতিরিক্ত পদ্ধতিগুলি ফিরতে একটি ডিফল্ট প্রয়োজন এবং ডিফল্ট মানটি সুযোগ দ্বারা ফিরে আসছে কি না তা বলার জন্য বুলিয়ান মান পরিবর্তন করতে পারে না, বা ফলাফল অনুকূল ছিল না কারণ। এই উদ্দেশ্যে, পদ্ধতিটি একটি ডিফল্ট ফিরে আসার চেয়ে ব্যতিক্রম বাড়াতে ভাল হত।
আমি এখানে আমার তথ্য পেয়েছি: অ্যান্ড্রয়েড ইনটেন্ট ডকুমেন্টেশন ।
//substitute your own intent here
Intent intent = new Intent();
intent.putExtra("first", "hello");
intent.putExtra("second", 1);
intent.putExtra("third", true);
intent.putExtra("fourth", 1.01);
// convert the set to a string array
ডকুমেন্টেশন সেট করুন
String[] anArray = {};
Set<String> extras1 = (Set<String>) intent.getExtras().keySet();
String[] extras = (String[]) extras1.toArray(anArray);
// an arraylist to hold all of the strings
// rather than putting strings in here, you could display them
ArrayList<String> endResult = new ArrayList<String>();
for (int i=0; i<extras.length; i++) {
//try using as a String
String aString = intent.getStringExtra(extras[i]);
// is a string, because the default return value for a non-string is null
if (aString != null) {
endResult.add(extras[i] + " : " + aString);
}
// not a string
else {
// try the next data type, int
int anInt = intent.getIntExtra(extras[i], 0);
// is the default value signifying that either it is not an int or that it happens to be 0
if (anInt == 0) {
// is an int value that happens to be 0, the same as the default value
if (intent.getIntExtra(extras[i], 1) != 1) {
endResult.add(extras[i] + " : " + Integer.toString(anInt));
}
// not an int value
// try double (also works for float)
else {
double aDouble = intent.getDoubleExtra(extras[i], 0.0);
// is the same as the default value, but does not necessarily mean that it is not double
if (aDouble == 0.0) {
// just happens that it was 0.0 and is a double
if (intent.getDoubleExtra(extras[i], 1.0) != 1.0) {
endResult.add(extras[i] + " : " + Double.toString(aDouble));
}
// keep looking...
else {
// lastly check for boolean
boolean aBool = intent.getBooleanExtra(extras[i], false);
// same as default, but not necessarily not a bool (still could be a bool)
if (aBool == false) {
// it is a bool!
if (intent.getBooleanExtra(extras[i], true) != true) {
endResult.add(extras[i] + " : " + Boolean.toString(aBool));
}
else {
//well, the road ends here unless you want to add some more data types
}
}
// it is a bool
else {
endResult.add(extras[i] + " : " + Boolean.toString(aBool));
}
}
}
// is a double
else {
endResult.add(extras[i] + " : " + Double.toString(aDouble));
}
}
}
// is an int value
else {
endResult.add(extras[i] + " : " + Integer.toString(anInt));
}
}
}
// to display at the end
for (int i=0; i<endResult.size(); i++) {
Toast.makeText(this, endResult.get(i), Toast.LENGTH_SHORT).show();
}