-3
にclass
のメソッド、つまりMaster
クラスを呼び出すたびに表示されるフレーズをいくつか保持するようにしました。メインアクティビティ外の文字列配列への参照を取得する
しかし、私はResources res = getResources();
を入力するときは赤でgetResources()
は、そのような方法はありませんと言っていることをマークします。
代わりに、メインアクティビティに入力するとすべてがうまく見えます。
どう私はreference
string-array
外Main
ので、私は作成することができmethod
内部の私のMaster
クラスを取得ことができますか?
これは私の文字列配列です:
<string-array name="goodMorning">
<item>Good Morning folks!</item>
[...]
<item>Be beep. Be beep. %s wake up!</item>
</string-array>
EDIT:
これは今
public class Master extends Player {
private String mName;
private Context context;
public String getmName(){
return mName;
} // Get Master's name
public static int randInt(int min, int max) { //Get a random int between two values
// Usually this can be a field rather than a method variable
Random rand = new Random();
// nextInt is normally exclusive of the top value,
// so add 1 to make it inclusive
int randomNum = rand.nextInt((max - min) + 1) + min;
return randomNum;
}
public Master(Context c){ //it's your contsructor method
this.context = c;
}
public void goodMorning() { // Get a random phrase from a String-Array and display it to the user
int randomNumber = randInt(0, 8); //Random Number
String[] arrayPhrases = context.getResources().getStringArray(R.array.goodMorning); // String-Array with 'morning phrases
List<String> listPhrases = new ArrayList<>(); // List
Collections.addAll(listPhrases, arrayPhrases); // Insert the String-Array in the List
String randomPhrase = listPhrases.get(randomNumber); // Get the random phrase
System.out.printf(randomPhrase); // Display it
}
}
私のマスタークラスであり、これは私の主な活動
public class MainActivity extends AppCompatActivity {
Master m = new Master(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
m.goodMorning();
}
です 問題私はm.goodMorning();
と呼んだとき、それはgoodMorning()メソッドを認識しません。
あなたはその方法 – njzk2
にコンテキストを渡したり、[] 'そのメソッドに'文字列を渡す必要があります。 「GetResources()」が「Context」のメソッドであり、「Activity」が「Context」から継承するため、「主なアクティビティにすべてを入力すると良い」と表示されます。 – CommonsWare
コードに関するヘルプが必要な場合は、Masterオブジェクトがどこでどのようにインスタンス化されるか、およびMasterクラスコードが表示されます。 – Elye