5

テキスト ビュー コントロールをホーム画面ウィジェットにプログラムで追加したいと考えています。次の例では、Linearlayout に TextView を設定していますが、ここで RemoteView をどのように使用すればよいでしょうか? パラメータとして xml リソース レイアウトのみを受け入れます。

public class MyWidget extends AppWidgetProvider {
    public void onUpdate(Context _context, AppWidgetManager appWidgetManager, 
                         int[] appWidgetIds) {

        LinearLayout l = new LinearLayout(_context);

        for (int i = 0; i < 10; i++) {
            TextView t = new TextView(_context);
            t.setText("Hello");
            l.addView(t); 
        }
    }
}

私が見たすべてのチュートリアルでは、RemoteViews オブジェクトに事前定義されたコントロールの値を明示的に入力しています。そして、プログラムでコントロールを追加したいと考えています。

RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.my_widget);
views.setTextViewText(R.id.widget_control1, value1);
views.setTextViewText(R.id.widget_control2, value2);
4

3 に答える 3

4

わかりました、appwidgets には不可能です。xml リソースのみが受け入れられます。

于 2012-02-24T07:40:20.230 に答える
0

あなたはこれを試すことができます

LinearLayout l = new LinearLayout(_context);

for (int i = 0; i < 10; i++) {
 TextView t = new TextView(this);
 t.setText("Hello");
 t.setBackgroundColor(Color.RED);
 t.setSingleLine(true);
 l.addView(t); 
 }

l.setId(100)

RemoteViews views = new RemoteViews(context.getPackageName(),100);
views.setTextViewText(R.id.widget_control1, value1);
views.setTextViewText(R.id.widget_control2, value2);
于 2012-02-13T19:36:36.393 に答える