के बाद अपडेट या लोड नहीं हो रही हैं मेरे पास एक विजेट ऐप है जो एंड्रॉइड लॉलीपॉप या लोअर ओएस की कोई समस्या नहीं है। जब मैंने मार्शमलो (एंड्रॉइड 6.0) में अपने नेक्सस 5 को अपग्रेड किया, तो मुझे एहसास हुआ कि मेरे विजेट को कस्टम पंक्ति सूचीदृश्य लोड करने में कोई समस्या है। विजेट में गतिशील टेक्स्ट व्यू और गतिशील सूची दृश्य है। textView पूरी तरह से काम करता है; लेकिन सूची दृश्य पंक्तियों के लिए कोई उम्मीद नहीं है। जब मैं विजेट जोड़ता हूं, लोडिंग चरण में फंस जाती पंक्तियां। यह वही कोड लॉलीपॉप या निचले उपकरणों पर काम कर रहा है लेकिन मार्शमलो पर नहीं। मेरा मानना है कि मार्शमलो एक समस्या पैदा कर रहा है जिसे मैं अभी तक नहीं ढूंढ पाया। मुझे उम्मीद है कि कोई मुझे दिखाएगा कि मैं क्या गलत कर रहा हूं और इस समस्या को हल करने में मेरी मदद करता हूं। मुझे सभी प्रकार की मदद की सराहना की जा रही है। धन्यवाद।एपविजेट सूचीदृश्य पंक्तियां मार्शमलो अपग्रेड
WidgetProvider.class:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
System.out.println("WidgetProvider.onUpdate()");
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
final boolean isMaviKart = MainUtils.getCardType(context).equals(Constants.CARD_TYPE_MAVI);
try {
//set widget id
ComponentName thisWidget = new ComponentName(context, WidgetProvider.class);
int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
MainUtils.setWidgetID(prefs, allWidgetIds[allWidgetIds.length - 1]);
for (int i = 0; i < appWidgetIds.length; i++) {
Intent intentService = new Intent(context, WidgetService.class);
intentService.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetIds[i]);
intentService.setData(Uri.parse(intentService.toUri(Intent.URI_INTENT_SCHEME)));
RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.widget);
widget.setRemoteAdapter(appWidgetIds[i], R.id.list_view, intentService);
Intent clickIntent = new Intent(context, MainActivity.class);
PendingIntent clickPI = PendingIntent.getActivity(context, 0, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT);
widget.setPendingIntentTemplate(R.id.list_view, clickPI);
if (isMaviKart) {
widget.setTextViewText(R.id.kalanPara, String.valueOf(MainUtils.getTokenPass(prefs)));
widget.setTextViewText(R.id.currency_tl, " Geçiş");
}
else {
widget.setTextViewText(R.id.kalanPara, String.valueOf(MainUtils.getTotalMoney(prefs)));
widget.setTextViewText(R.id.currency_tl, " TL");
}
appWidgetManager.updateAppWidget(appWidgetIds[i], widget);
}
}
catch (Exception e) {
e.printStackTrace();
Toast.makeText(context, context.getResources().getString(R.string.error_occured), Toast.LENGTH_SHORT).show();
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
System.out.println("WidgetProvider.onReceive()");
String key = intent.getStringExtra(Constants.EXTRA);
if (key != null)
Log.e("TEST", key);
}
WidgetViewsFactory.class:
@Override
public RemoteViews getViewAt(int position) {
Intent intent = new Intent();
Bundle extras = new Bundle();
rowButton = context.getResources().getIdentifier("widget_button","id", context.getPackageName());
rowText = context.getResources().getIdentifier("widget_textview","id", context.getPackageName());
RemoteViews row = new RemoteViews(context.getPackageName(), R.layout.row);
// set BUTTON NAMES
row.setTextViewText(rowButton, getFeeTypes(position));
// simple rows:
configureRowsInListview(row, position, context.getResources().getColor(R.color.DeepSkyBlue), View.VISIBLE);
extras.putString(Constants.EXTRA, getEventKey(position));
intent.putExtras(extras);
row.setOnClickFillInIntent(rowButton, intent);
row.setOnClickFillInIntent(rowText, intent);
return row;
}
WidgetService.class:
public class WidgetService extends RemoteViewsService {
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent) {
return(new WidgetViewsFactory(this.getApplicationContext()));
}
}
MainActivity.class: (Marshmallow पर कीवर्ड वापसी नल)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
prefs = PreferenceManager.getDefaultSharedPreferences(this);
String keyWord = getIntent().getStringExtra(Constants.EXTRA);
if (keyWord == null) {
keyWord = "null";
Log.e("onCreate() ", "No data Arrived yet!");
}
}
private void updateWidgetScreen(String updateData, String currencyType) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.widget);
ComponentName thisWidget = new ComponentName(this, WidgetProvider.class);
remoteViews.setTextViewText(R.id.kalanPara, updateData);
remoteViews.setTextViewText(R.id.currency_tl, currencyType);
Intent intent = new Intent(this, WidgetService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, MainUtils.getWidgetID(prefs));
intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
remoteViews.setRemoteAdapter(MainUtils.getWidgetID(prefs), R.id.list_view, intent);
Intent clickIntent = new Intent(this, MainActivity.class);
PendingIntent clickPI = PendingIntent.getActivity(this, 0, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setPendingIntentTemplate(R.id.list_view, clickPI);
appWidgetManager.updateAppWidget(thisWidget, remoteViews);
Log.e("updateWidgetScreen", updateData+" updateData - widgetid: "+ MainUtils.getWidgetID(prefs));
}
सोचा कि लिंक स्रोत कोड था। smh। मूल कोड के बिना एंड्रॉइड ऐप को ठीक करना बहुत मुश्किल है। – napkinsterror