6

このエラーを修正するにはどうすればよいですか。下部にある3つの文字列はすべて、「メソッドgetString(int)はタイプAppsに対して未定義です」というエラーが発生します。助けてください、そのような初心者です。

package com.actionbarsherlock.sample.fragments;

import android.content.Context;
import android.content.res.Resources;


public final class Apps {
/**
 * Our data, part 1.
 */
public static final String[] TITLES =
{
        "title1",
        "title2",
        "title3"
};

/**
 * Our data, part 2.
 */
public static final String[] DIALOGUE = { 

    getString(R.string.text1),

    getString(R.string.string2),

    getString(R.string.string3)

};
}
4

4 に答える 4

32

のインスタンスを渡すContext context

その後、

context.getResources().getString(R.string.text1)

これcontextはあなたの現在の活動に属しています。

于 2012-10-21T16:40:44.897 に答える
6

最初getStringは静的メソッドではありません。静的コンテキストで呼び出していますが、これは実行できません。

次に、getStringメソッドはResourcesクラスの一部です。クラスはクラスを拡張しないResourcesため、メソッドが見つかりません。

Resourcesコンストラクターを使用してクラスのインスタンスをクラスに解析するAppsのが最善のオプションだと思います。

このようなもの:

public final class Apps {

    public Apps(Resources r){
     DIALOGUE = new String[]{
        r.getString(R.string.text1),
        r.getString(R.string.string2),
        r.getString(R.string.string3)};
    }


/**
 * Our data, part 1.
 */
public static final String[] TITLES =
{
        "title1",
        "title2",
        "title3"
};

/**
 * Our data, part 2.
 */
public static String[] DIALOGUE;
}
于 2012-10-21T16:38:12.537 に答える
1

アプリケーションのサブクラスを作成します。たとえば、パブリッククラスApp extends Application {AndroidManifest.xmlでタグのandroid:name属性を設定して、新しいクラスを指すようにします。たとえば、android:name ="。App"onCreate()メソッドでアプリインスタンスの場合、コンテキスト(例:this)をmContextという名前の静的フィールドに保存し、このフィールドを返す静的メソッド(例:getContext())を作成します。

これはそれがどのように見えるべきかです:

public class App extends Application{

    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        mContext = this;
    }

    public static Context getContext(){
        return mContext;
    }
}

これで、次を使用できます:App.getContext()。getString()

于 2018-07-05T08:46:52.290 に答える
1

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

getResources().getString(R.string.somestrid);

また

getApplicationContext().getResources().getString(R.string.somestrid);
于 2019-11-10T08:35:55.390 に答える