2012-03-17 44 views
4

我有一个问题。我之前做过所有的设计和编码小部件。现在我在我的小部件中有一个按钮和一个textview。我想当我点击我的按钮时,我的文本输入在TextView中作为额外的意图,然后开始意图。我可以用下面的代码做到这一点:如何在android编程中获取放置在小部件上的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 /我希望把我的textviews'文本作为额外的费用。我希望当我点击小部件中的按钮时,该按钮上的一个额外的包含Textview的文本被放置在小部件上,我点击了它的按钮。

我可怕的讲英语的

+0

可能重复的[获取文本的android家庭小部件(不在活动中)的TextView?](http://stackoverflow.com/questions/11237217/get-text-of-a-textview- in-android-home-widget-not-in-activity) – 2015-05-28 01:20:47

回答

-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

+0

tnx imrankhan。我之前使用此代码,但当我用户findViewById它没有检测到这种方法! – aTa 2012-03-17 08:24:56

0

你并不需要得到你的插件的TextView的文本。为什么?因为TextView的文本会在另一个地方改变,然后这个改变将适用于小部件。例如,用户可以更改活动中的文本。为了在小部件中显示新文本,可以将其保存在SharedPreferences中并将其提取到小部件中。

Refer to here for more details.

+0

谢谢你的回答。但你的意见不是关于我的问题。我在小部件中,我现在不用什么文本视图的文本,然后把额外的和接下来的意图。我textof textview是动态的,我不知道在这个时候什么显示在小部件上的文本视图 – aTa 2012-03-18 07:02:21

+0

我必须从textview中获取文本,然后将其置于意图 – aTa 2012-03-18 07:04:53

+0

我认为你错了。 TextView中的文本来自其他地方。你怎么不知道小部件上的文字?在我之前看到的所有小部件中,文本都在一个活动中更改,然后应用于小部件。 – Mbt925 2012-03-18 14:36:06

0

我和你有同样的问题。像aTa这样的人不知道我预期的事情到底是什么。而且我建议你可以使用sharedPreference来保存放置在你的android home widget上的TextView的数据,然后你的活动从它获取数据。这是一个作弊

相关问题