7

के बाद अपडेट या लोड नहीं हो रही हैं मेरे पास एक विजेट ऐप है जो एंड्रॉइड लॉलीपॉप या लोअर ओएस की कोई समस्या नहीं है। जब मैंने मार्शमलो (एंड्रॉइड 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)); 
    } 

ListView पंक्ति समस्या: enter image description here

+1

सोचा कि लिंक स्रोत कोड था। smh। मूल कोड के बिना एंड्रॉइड ऐप को ठीक करना बहुत मुश्किल है। – napkinsterror

उत्तर

0

मैं त्रुटि मैंने पाया। मेरे पास शैली android:style/Widget.Material.Button के साथ एक बटन के साथ एक कस्टम सूचीदृश्य था। जब मैंने बटन की शैली को हटा दिया, तो उसने मेरी समस्या तय की।

<Button 
      android:id="@+id/widget_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="Button" 
      android:layout_marginRight="10dp" 
      android:gravity="center" 
      android:padding="8dp" 
      android:textColor="@color/White" 
      **style="@style/MaterialButton"** 
      /> 

<style name="MaterialButton" parent="android:style/Widget.Material.Button"> 
     <item name="android:background">@drawable/raised_button_background</item> 
</style> 
संबंधित मुद्दे