如何在android编程中获取放置在小部件上的textview文本

时间:2012-03-17 07:26:55

标签: android android-widget

我有一个问题。我之前为设计和编码小部件做了所有事情。现在我的小部件中有一个按钮和一个textview。我想当我点击我的按钮时,我在textview中输入的文本作为意图的额外内容,然后启动该意图。我可以使用以下代码执行此操作:

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        for (int i=0;i<appWidgetIds.length;i++){
            int awID=appWidgetIds[i];
            RemoteViews v=new RemoteViews(context.getPackageName(),R.layout.widgetshow);
.
.
.

            Intent in = new Intent("my.app.NOTEEDITOR");
            Bundle basket = new Bundle();
        */100*/ basket.putString("textViewText", "test");
            in.putExtras(basket);
            PendingIntent pi = PendingIntent.getActivity(context, 0, in, 0);
            v.setOnClickPendingIntent(R.id.button, pi);

            appWidgetManager.updateAppWidget(awID, v);
.
.
.
        }
    }

但是在标有 / 100 /的行中我希望将我的观看文字放在&#39;文字作为额外的。我希望当我点击窗口小部件中的我的按钮开始一个活动,其中包含一个额外包含的textview文本放在我点击它的按钮上。

对不起那些可怕的英语口语的人

3 个答案:

答案 0 :(得分:0)

您无需在窗口小部件中获取TextView的文本。为什么?因为TextView的文本将在另一个地方更改,然后此更改将应用​​于窗口小部件。 例如,用户可以更改活动中的文本。要在窗口小部件中显示新文本,您可以将其保存在SharedPreferences中并在窗口小部件中获取它。

Refer to here for more details.

答案 1 :(得分:0)

我和你有同样的问题。像aTa这样的人完全不知道我的期望是什么。我建议你可以使用sharedPreference来保存放置在android主页小部件上的TextView数据,然后你的活动从中获取数据。这是一个骗子

答案 2 :(得分:-2)

更新您的代码:

@Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        for (int i=0;i<appWidgetIds.length;i++){
            int awID=appWidgetIds[i];
            RemoteViews v=new RemoteViews(context.getPackageName(),R.layout.widgetshow);


            Intent in = new Intent(paramContext, Caller2.class); ///Activity name Caller2.class  you want to start
            Bundle basket = new Bundle();
            TextView txt=(TextView)findViewbyId(R.id.txtid);
            String test = tx.getText().toString();
            basket.putString("textViewText", test);
            in.putExtras(basket);
            PendingIntent pi = PendingIntent.getActivity(context, 0, in, 0);
            v.setOnClickPendingIntent(R.id.button, pi);
            appWidgetManager.updateAppWidget(awID, v);

        }
    }

获取更多帮助,请参阅Widget is clicked