1

Mark L.Murphy による「Android PROgramming Tutorials」の lunchlist の例を参照して、以下の静的クラス コード (84 ページ) で:

static class RestaurantHolder {
    private TextView name=null;
    private TextView address=null;
    private ImageView icon=null;
    RestaurantHolder(View row) {
        name=(TextView)row.findViewById(R.id.title);
        address=(TextView)row.findViewById(R.id.address);
        icon=(ImageView)row.findViewById(R.id.icon);
    }
   void populateFrom(Restaurant r) {
        name.setText(r.getName());
        address.setText(r.getAddress());
        if (r.getType().equals("sit_down")) {
          icon.setImageResource(R.drawable.ball_red);
        }
        else if (r.getType().equals("take_out")) {
          icon.setImageResource(R.drawable.ball_yellow);
        }
        else {
          icon.setImageResource(R.drawable.ball_green);
        }
      }
    }

交換しようとしています

r.getType().equals("take_out")

r.getType().equals(getString(R.string.TakeAway))

しかし、「型 Context から非静的メソッド getString(int) への静的参照を作成できません」というエラーが表示されます

ばかげた質問かもしれませんが、本当に助けが必要です。

4

2 に答える 2

4

そのような方法で文字列を取得したい場合は、次のようなことを試すことができます:

void populateFrom(Restaurant r,Context context)
{
//other code
r.getType().equals(context.getString(R.string.TakeAway))
//other code
}
于 2011-11-29T08:20:07.613 に答える
0

デフォルトで static キーワードを使用してクラスを定義すると、このクラスに定義されたすべてのメンバー変数とメソッドは静的であるため、非静的メソッドをクラスメソッドに使用することはできません。そのメソッドを使用するオブジェクトが必要な場合、または削除することができますクラス定義の static キーワード

于 2011-11-29T08:15:22.747 に答える