Простого Quote генератор в вопросе, я концептуализировал код и предположила, что это будет работать, если я держать мои строки в XMLКак я получить доступ к случайным string.xml
<resources>
<string name="app_name">"Lift Quote"</string>
<string name="action_settings">Settings</string>
<!-- put buttons in here -->
<!-- here are the quotes -->
<!-- inspiring -->
<string name="s1">"He who has a why to live can bear almost any how." -Nietzche</string>
<string name="s2">"Life is about making an impact, not making an income." –Kevin Kruse</string>
<string name="s3">You miss 100% of the shots you don’t take. –Wayne Gretzky</string>
<!-- deep -->
<string name="s4">" A man's character is his fate. " -Heraclitus</string>
<string name="s5">"Why do you stay in prison when the door is so wide open?" -Rumi</string>
<string name="s6">"When I let go of what I am, I become what I might be." -Lao Tzu</string>
<!-- positive -->
<string name="s8">"Happiness is not something ready made. It comes from your own actions." -Dalai Lama</string>
<string name="s9">"If you have a positive attitude and constantly strive to give your best effort,
eventually you will overcome your immediate problems and find you are ready for greater challenges." -Pat Riley
</string>
</resources>
и доступ к ним в главный.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// WHERE MY CODE STARTS
//RANDOM GENERATOR that DOESN'T WORK
Random rand = new Random();
final int irandomIndex = rand.nextInt((3 - 1) + 1)+1;
final int drandomIndex = rand.nextInt((4 - 6) + 1)+4;
final int prandomIndex = rand.nextInt((7 - 9) + 1)+7;
final String iIndex = "s"+irandomIndex;
final String dIndex = "s"+drandomIndex;
final String pIndex = "s"+prandomIndex;
//STRING
final TextView txt = (TextView) findViewById(R.id.textView);
//BUTTONS
//
Button inspireBtn = (Button) findViewById(R.id.iButton);
Button deepBtn = (Button) findViewById(R.id.dButton);
Button positiveBtn = (Button) findViewById(R.id.pButton);
// ON CLICK LISTENRS
inspireBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
String index = iIndex;
txt.setText(getResources().getString(R.string.index));
//"cannot resolve symbol 'index';"
}
});
//this wouldn't work either
final String ss1 = "s1";
final String x = getResources().getString(R.string.ss1);
deepBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txt.setText(x);
}
});
//this wouldn't work either same error
final String sx2 = "s1";
final String m = getResources().getString(R.string.sx2);
positiveBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txt.setText(m);
}
});
}
Я думаю, мой вопрос больше: как можно получить доступ к значению String.xml через переменную String. Я считаю, что это может быть полезно в будущем. На данный момент я отказался сделать это в отдельном классе через Array.
Я чувствую, что это было бы легче. Затем вы произвольно выбираете из массива строк, чтобы получить соответствующую строку. – DeeV