使用月中某天的数组中包含特定项目的 TextView

TextView with a specific item from a array using Day of the Month

我是新手,我需要做一个应用程序,在每个月的每一天向用户显示一个独特的短语,比如今天是 25,textView 应该显示 "A potato." 明天 textView 应该显示 "A carrot." 和下个月,第 25 天,显示相同的土豆,第 26 天显示相同的胡萝卜。

这是我的代码:

当我在 phone 上启动它时,它什么也没做。

public class MainActivity extends AppCompatActivity {
  String q;
  Resources con;
  TextView frase1;
  TextView frase2;
  TextView frase3;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    frase1 = (TextView)findViewById(R.id.textView1);
    frase2 = (TextView)findViewById(R.id.textView2);
    frase3 = (TextView)findViewById(R.id.TextView3);

    con = getResources();
    Calendar calendar = Calendar.getInstance();
    int day = calendar.get(Calendar.DAY_OF_MONTH);
    if (Calendar.DAY_OF_MONTH == 1){
        q = con.getStringArray(R.array.dia)[1];
        frase1.setText(q);
    }
    if (Calendar.DAY_OF_MONTH == 2){
        q = con.getStringArray(R.array.dia)[2];
        frase1.setText(q);
    }
    if (Calendar.DAY_OF_MONTH == 3){
        q = con.getStringArray(R.array.dia)[3];
        frase1.setText(q);
    }
  }
}

这没有回答您的问题,但您可以将所有 if 替换为 frase1.setText(con.getStringArray(R.array.dia)[day]);

另外,尝试使用日志来查找导致问题的值(例如,Log.i(TAG,day);)

我认为您正在输入 if statement 的 none,因此 TextView 没有设置任何内容。尝试使用如下所示的 else statement。试试这个 -

public class MainActivity extends AppCompatActivity {
            String q;
            Resources con;
            TextView frase1;
            TextView frase2;
            TextView frase3;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

     frase1 = (TextView)findViewById(R.id.textView1);
    frase2 = (TextView)findViewById(R.id.textView2);
    frase3 = (TextView)findViewById(R.id.TextView3);

    con = getResources();
    Calendar calendar = Calendar.getInstance();
    int day = calendar.get(Calendar.DAY_OF_MONTH);
    if (day == 1){
        q = getResources().getStringArray(R.array.dia)[1];
        frase1.setText(q);
    }
    else if (day == 2){
        q = getResources().getStringArray(R.array.dia)[2];
        frase1.setText(q);
    }
    else if (day == 3){
        q = getResources().getStringArray(R.array.dia)[3];
        frase1.setText(q);
    } else {
        q = getResources().getStringArray(R.array.dia)[3];
            frase1.setText(q);
}


}