J'utilise une activité de configuration pour basculer la visibilité de différentes vues dans le fichier xml en utilisant RemoteViews. Au début, je pensais que, puisque l'activité de configuration est appelée avant que le widget est réglé, je ne reviendrai pas besoin de mettre à jour, donc je l'ai utilisé:AppWidget ne fonctionnera pas
package com.example.test.clock.one;
import android.app.Activity;
import android.appwidget.AppWidgetManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.RemoteViews;
public class chooseract extends Activity
{
int mAppWidgetId;
RemoteViews rv;
AppWidgetManager appWidgetManager;
Context context;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void buttonhandler(View view)
{
rv = new RemoteViews(context.getPackageName(), R.layout.activity_main);
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null)
{
mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,AppWidgetManager.INVALID_APPWIDGET_ID);
}
switch(view.getId())
{
case R.id.button1:
{
rv.setViewVisibility(R.id.analogClock1, View.VISIBLE);
rv.setViewVisibility(R.id.analogClock2, View.INVISIBLE);
finish();
break;
}
case R.id.button2:
{
rv.setViewVisibility(R.id.analogClock1, View.INVISIBLE);
rv.setViewVisibility(R.id.analogClock2, View.VISIBLE);
finish();
break;
}
}
}
}
mais qui définit juste un widget vide (visibilité par défaut est INVISIBLE) alors i mise à jour du appwidget essayé après l'aide sur la visibilité
package com.example.test.clock.one;
import android.app.Activity;
import android.appwidget.AppWidgetManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.RemoteViews;
public class chooseract extends Activity
{
int mAppWidgetId;
RemoteViews rv;
AppWidgetManager appWidgetManager;
Context context;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void buttonhandler(View view)
{
rv = new RemoteViews(context.getPackageName(), R.layout.activity_main);
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null)
{
mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,AppWidgetManager.INVALID_APPWIDGET_ID);
}
switch(view.getId())
{
case R.id.button1:
{
rv.setViewVisibility(R.id.analogClock1, View.VISIBLE);
rv.setViewVisibility(R.id.analogClock2, View.INVISIBLE);
break;
}
case R.id.button2:
{
rv.setViewVisibility(R.id.analogClock1, View.INVISIBLE);
rv.setViewVisibility(R.id.analogClock2, View.VISIBLE);
break;
}
}
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
appWidgetManager.updateAppWidget(mAppWidgetId, rv);
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
setResult(RESULT_OK, resultValue);
finish();
}
}
mais cette force vient se ferme lorsque je touche les boutons avec une NullPointerException Toutes les idées?
: O je vous dois du BIG time: O – QuantumFoam