簡體   English   中英

Android:使用if語句循環數組

[英]Android: looping arrays with an if statement

我是Android的新手,但不是編程人員,我必須為Masters項目創建一個原型應用程序。 我有2個預定的數組,每個數組包含33個值。 目的是使數組在單擊按鈕時顯示每個值。 最終它將做得更多,但是現在這並不重要。

我使用了一個簡單的if / else if語句,並將其包含在try / finally塊中。 數組循環優美,但是當i的值到達數組的末尾(32)並遞增超過數組的末尾(33)時,它不會繞過第一個if參數並轉到else if塊。 盡我所能嘗試,我一生都無法弄清為什么它沒有返回false並跳到后續迭代的下一部分。 logcat顯示它超出了數組長度,這很好,但是我有一個參數可以捕捉到。 還是我認為我願意?

我可能錯過了一些愚蠢的東西,但是如果有人可以發現它,我將非常感謝您的幫助。 提前致謝 :)

碼:

public class TestActivity extends Activity {

public int i;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);

    final TextView testQuest = (TextView) findViewById(R.id.questView);
    final TextView testNum = (TextView) findViewById(R.id.numbs);
    Button getNext = (Button) findViewById(R.id.btnNext);

    final String[] quesNums = { "Question 1", "Question 2", "Question 3",
            "Question 4", "Question 5", "Question 6", "Question 7",
            "Question 8", "Question 9", "Question 10", "Question 11",
            "Question 12", "Question 13", "Question 14", "Question 15",
            "Question 16", "Question 17", "Question 18", "Question 19",
            "Question 20", "Question 21", "Question 22", "Question 23",
            "Question 24", "Question 25", "Question 26", "Question 27",
            "Question 28", "Question 29", "Question 30", "Question 31",
            "Question 32", "Question 33" };

    final String[] questions = {
            "I have enough information about the organisation/work area to prepare for my placement.",
            "I am clear about what I need to be able to do to be successful in this role.",
            "I am clear about the skills and qualities I can offer this organisation/work area.",
            "I have a realistic plan to manage financially.",
            "I have a realistic plan to travel to and from the organisation/work area.",
            "I have set realistic goals for myself to prepare for this experience.",
            "I have realistic plan to manage my personal commitments.",
            "My commitments to caring for others (E.g. children, parents) will not be affected by this placement.",
            "Managing my personal needs (E.g. relating to my health, personal experiences, impairment or disability) so they do not have a negative effect on this placement",
            "Overall, I am confident about my preparation for this experience.",
            "Working on specific days/dates that are important to you e.g. Christmas Day, Eid, Diwali.",
            "Being available for the working patterns of your placement.",
            "Being flexible about your personal commitments or needs",
            "Taking regular breaks during the day for your personal commitments or needs.",
            "Feeling comfortable about discussing your personal commitments or needs with your supervisor on the placement.",
            "Using negotiating skills with confidence on your placement.",
            "Assessing the feasibility of asking for time off/alternative working arrangements on your placement. As opposed to during a permanent work contract.",
            "Discussing any problems around managing this placement successfully with your academic supervisor.",
            "Getting to your placement.",
            "Getting to your placement on time.",
            "Getting around the location.",
            "Keeping up with the expected pace of work.",
            "Keeping up with paperwork.", "Achieving your outcomes/goals.",
            "Coping with deadlines.", "Coping with stress.",
            "Coping with personal emergencies.",
            "Working with others or in a team.",
            "Working with people you don't know.",
            "Working with people who are different from you.",
            "Following instructions.",
            "Using your initiative/ work independently.",
            "Managing the hours and schedule of work." };

    i = 0;

    getNext.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            try {

                if (i <= quesNums.length) {
                    testNum.setText(quesNums[i]);
                    testQuest.setText(questions[i]);
                    i = i + 1;
                }
                else if (i > quesNums.length){
                    testNum.setText("End of questions");
                    testQuest.setText("All done");
                    }
            } finally {
                if (i > 33){
                testNum.setText(i);
                testQuest.setText(i);
                }
            }
        }

    });
}   

}

Logcat:

04-14 03:05:33.250: E/AndroidRuntime(1567): java.lang.ArrayIndexOutOfBoundsException: length=33; index=33
04-14 03:05:33.250: E/AndroidRuntime(1567):     at hhs.huddersfield.ppa.TestActivity$1.onClick(TestActivity.java:76)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at android.view.View.performClick(View.java:4091)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at android.view.View$PerformClick.run(View.java:17036)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at android.os.Handler.handleCallback(Handler.java:615)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at android.os.Looper.loop(Looper.java:137)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at android.app.ActivityThread.main(ActivityThread.java:5031)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at java.lang.reflect.Method.invokeNative(Native Method)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at java.lang.reflect.Method.invoke(Method.java:511)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
04-14 03:05:33.250: E/AndroidRuntime(1567):     at dalvik.system.NativeStart.main(Native Method)
04-14 03:05:35.450: E/Trace(1814): error opening trace file: No such file or directory (2)
if (i <= quesNums.length) {
                testNum.setText(quesNums[i]);
                testQuest.setText(questions[i]);
                i = i + 1;
            }

if (i < quesNums.length) {
                testNum.setText(quesNums[i]);
                testQuest.setText(questions[i]);
                i = i + 1;
            }

quesNums [index]中的索引應在[0,length-1]范圍內

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM