안드로이드 개발 질문/답변
(글 수 45,052)
1.
package your.packages.namespaces;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.widget.RemoteViews;public class examo extends AppWidgetProvider {
final static String TAG = "exam";
final static String PREF = "your.packages.namespaces";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){
final int N = appWidgetIds.length; for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
RemoteViews views = buildViews(context,appWidgetIds[i]);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
private PendingIntent buildActivityIntent(Context context){
SharedPreferences prefs = context.getSharedPreferences(PREF, 0);
String sUri=prefs.getString("key", "???" /*여기잇는???*/ );
Uri uri= Uri.parse(sUri);
Intent intent = new Intent(Intent.ACTION_VIEW)
.setData(Uri.parse("http://"+uri));
PendingIntent pi = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
return pi;
}
private RemoteViews buildViews(Context context,int widgetId){
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.c28_fakenews);
views.setOnClickPendingIntent(R.id.btnconfig, buildActivityIntent(context));
return views;
}
}
2.
package your.packages.namespaces;
import android.app.Activity; import android.appwidget.AppWidgetManager; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.EditText;
public class exam extends Activity {
final static String PREF = "your.packages.namespaces";
CheckBox mRed;
EditText mURI;
int mId;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c28_fakenewsconfig);
// 일단 실패로 가정한다.
setResult(RESULT_CANCELED);
mRed = (CheckBox)findViewById(R.id.chkred);
mURI = (EditText)findViewById(R.id.URIlink); Intent intent = getIntent();
mId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
Log.d(C28_FakeNews.TAG, "Config onCreate id = " + mId); // 설정값 읽어서 체크 박스에 출력.
SharedPreferences prefs = getSharedPreferences(PREF, 0);
String wURI = prefs.getString("uri_"+mId, "");
mURI.setText(wURI);
}
public void mOnClick(View v) {
switch (v.getId()) {
case R.id.btnok:
Log.d(C28_FakeNews.TAG, "Install id = " + mId);
// 인스턴스의 정보에 에디트텍스트값 저장
SharedPreferences prefs = getSharedPreferences(PREF, 0);
SharedPreferences.Editor editor = prefs.edit();
String sURI = mURI.getText().toString();
editor.putString("red_" + mId, sURI);
editor.commit();
// OK 리턴 보냄
Intent intent = new Intent();
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mId);
setResult(RESULT_OK, intent);
finish();
break;
}
}
}
2에서 저장한 String을 1에서 버튼을 눌렀을때 저장된 사이트로 이동하는 하려면 1의 ???에 무엇을 써넣어야하나요?
아니면 다른 방법이 있나요?
공지사항을 다 읽었음




제가 글쓰는 게 처음이라,, 이상하게 써졌더라도 양해바랍니다 참고로 앱위젯입니다