저는 홈 화면 위젯을 시작할 때 사용자가 사용자 이름을 정의 할 수있게하려고합니다. 하지만 내 위젯에이 값을 저장하고 액세스하는 데 문제가 있습니다. 지금 내가하는 일은 위젯을 만들 때 시작되는 구성 활동을 만드는 것입니다.SharedPreferences를 사용하는 Android 위젯 구성
가<activity android:name=".ExampleAppWidgetConfigure">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity>
[구성 활동 후 위젯 SharedPreferences
에 저장 될 사용자 이름을 입력하도록 허용 다음과 같다 : 그러므로 나는 (나는 또한 widgetprovider.xml에 정의) 매니페스트 파일에 정의 된 :
SharedPreferences.Editor prefs = context.getSharedPreferences(PREFS_NAME, MODE_WORLD_READABLE).edit();
prefs.putString("username", text);
prefs.commit();
제 질문은이 값에 어떻게 액세스합니까? 내 위젯 클래스에서 인스턴스 변수를 갖고 싶습니다.
final String userName = ...; //load the username here.
그러나 위젯에서 사용자 이름을 검색하려면 어떻게해야합니까? 문제는 위젯이 AppWidgetProvider
의 서브 클래스이고 SharedPreferences
에 액세스 할 수 없기 때문입니다 (AppWidgetProvider
은 Context
의 하위 클래스가 아니기 때문에). 나는 strings.xml 파일에 사용자 이름을 저장하는 것에 대해서도 생각했다. SharedPreferences
을 올바르게 사용하고 있습니까? 나 또한 사용자 이름을 표시하기로되어있는 위젯의 TextView
으로 사용자 이름을 설정하는 방법에 대해 생각했습니다. 그러나 일부 서버 요청에 대한 클래스에서 사용자 이름이 필요하고 위젯에 TextView
텍스트를 가져올 방법이없는 것 같습니다 ... 설정자 setTextViewText(String text)
이 정의되어 있습니다.
어떻게 사용자 이름을 검색 할 수 있습니까?