1

私の活動では、一連のコントロール(入力フィールド)を調べて、

for(ControlTemplate field: fieldMap.get(string))
{
    View view = field.getFieldControl(true, this);
    l.addView(view, new PredicateLayout.LayoutParams(2, 0));
}

ControlTemplate の getFieldControl には、さまざまなタイプのビューを返す必要がある switch ステートメントが含まれています。

  case LABEL:                       
        view = new TextView(context);
        view.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
        ((TextView) view).setText(value);
  break;

ただし、xml 定義からビューを作成できるようにしたいのですが、クラスはアクティビティではないため、レイアウトがないため、これは不可能です。私がやりたいことは次のようなものです:

case TEXTBOX:   
    view = (EditText) passedActivity.findViewById(R.id.edit_message);
break;

ここで、 passedActivity は ControlField クラスを作成したアクティビティです。現在のアクティビティを引数として渡す方法、またはおそらくそのレイアウト アセットのみを渡す方法はありますか?

4

3 に答える 3

0

問題を正しく理解している場合は、アクティビティのコンテキストを ControlTemplate クラスに渡す必要があります。

たとえば、これを送信します(現在のコンテキスト)。

adapter = new ChecklistBaseAdapter(this, checklistitems);

基本アダプター クラスを呼び出すとき

public ChecklistBaseAdapter(Context context, ArrayList<Checklist> results) 

次に、ChecklistBaseAdapter クラスを使用して、現在のアクティビティの変更コントロールを参照できます。

それが役に立てば幸い

于 2013-04-22T12:16:01.917 に答える