2013-07-02 129 views
2

我想在我的Widget中顯示一些TextView和EditView的列表。Android AppWidget:添加自定義視圖到Widget佈局

我用下面的代碼來生成的TextView和EditView中

public LinearLayout getMainBodyLayout(List<Item> data) { 
     LinearLayout mainLL = new LinearLayout(context); 
     mainLL.setOrientation(LinearLayout.VERTICAL); 
     for (int i = 0; i < data.size(); i++) { 
      Item ritem = data.get(i); 
      LinearLayout item = new LinearLayout(context); 
      TextView name = new TextView(context); 
      EditText nos = new EditText(context); 
      name.setText(ritem.getName()); 
      nos.setText(ritem.getNo()); 
      item.addView(name); 
      item.addView(nos); 
      mainLL.addView(item); 

     } 

     return mainLL; 
    } 

public void updateWidget(LinearLayout ll) { 
     AppWidgetManager manager = AppWidgetManager.getInstance(context); 
     ComponentName thisWidget = new ComponentName(context, MainWidget.class); 
     RemoteViews remoteViews = new RemoteViews(context.getPackageName(), 
       R.layout.widget_my); 
     remoteViews.setTextViewText(R.id.title, title); 

     remoteViews.setTextViewText(R.id.widget_error, errorMsg); 

// I ve to add ll to this remoteViews 


     manager.updateAppWidget(thisWidget, remoteViews); 
    } 

的名單我要返回的LinearLayout添加到我的小部件的LinearLayout。 請提供給我最好的方法來做到這一點。

+1

你想打表????如果是這樣,你爲什麼不使用列表視圖的任何問題?和listview將比你現在正在做的更快。 – BBdev

+0

@BBdev,我不知道如何設置適配器... – Sridhar

+0

@BBdev你可以告訴我如何做到這一點與ListView – Sridhar

回答

0

儘量使佈局在XML中,並設置其在Java中的文件... 和使用方法

  RemoteViews.setTextviewText(id,string); 

值試試這個方法,我在高壓部件我

 private class ABC extends TimerTask { 
     RemoteViews remoteViews; 
     AppWidgetManager appWidgetManager; 
     ComponentName thisWidget; 

     public ABC(Context context, final AppWidgetManager appWidgetManager) { 
     this.appWidgetManager = appWidgetManager; 


     remoteViews = new RemoteViews(context.getPackageName(), R.layout.main); 
     thisWidget = new ComponentName(context, WidgetAnimate.class); 
      } 

     public void run() { 

      String k= XMLfunctions.data1(); 
      remoteViews.setTextViewText(R.id.tv12,k); 
      appWidgetManager.updateAppWidget(thisWidget, remoteViews); 

     } 
+0

我想添加自定義視圖。我不能使用子視圖的硬編碼 – Sridhar

0

給予使用你完整的代碼會更大。我給你一些代碼示例,你可以根據需要對它進行優化。

Android ListView example

而這一次也是一個很好的教程入手

Android ListView Tutorial

,如果你想優化你的列表,你可以看到這個教程。

ListView Tips & Tricks #3: Create Fancy ListViews

+0

謝謝,但我問過如何在AppWidgetProvider類中設置適配器。 – Sridhar

+0

如果您將使用ListView,則可以直接將適配器設置爲listview。 listview是Android提供的一個小部件,通過列表視圖可以很好地實現你正在做的事情。 – BBdev

+0

ok,listview.setAdapter(adapterObj); – Sridhar

相關問題