第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從一個活動和另一個活動將元素添加到數(shù)組列表

如何從一個活動和另一個活動將元素添加到數(shù)組列表

呼喚遠方 2022-07-14 16:21:35
我正在制作一個包含多項選擇題的應用程序。例如,每個問題都有自己的活動QuestionTwoActivity。每次用戶點擊一個按鈕,例如答案 A 的按鈕,它會將他們移動到下一個活動,例如 from QuestionTwoActivityto QuestionThreeActivity。如果答案是正確的,他們的分數(shù)會增加 3。它有十個問題,總分可能是 30。我的應用程序的那部分運行良好,但是當我想要進行最終預覽時,問題就開始了,該預覽GradeActivity最初只顯示用戶的最終成績。我想在成績活動中添加一個列表,顯示用戶對每個問題的答案的答案,以及用戶是否正確回答,所以我制作了一個自定義 arrayAdapter 來填充列表,然后嘗試使用每個答案的onclick方法根據(jù)回答的問題向arrayadapter的arraylist添加一個元素,但這會導致應用程序崩潰這是gradeActivity僅在回答第十個問題后才打開的代碼:import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import android.widget.TextView;import java.util.ArrayList;public class Grade extends AppCompatActivity{    examark mExamGrade; // declaring an instance of the examark class to call getMark method    double mark; // an int object to store the exam mark in it    TextView mGradeTextView;    TextView mNameTextView;    ListView mPreviewListView;    static ArrayList<answers_preview_data> mPreviewArrayList;    PreviewAdapter mPreviewAdapter;    examark name;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_grade);        int colorRed = getResources().getColor(R.color.colorRed);        int colorOrange = getResources().getColor(R.color.colorOrange);        int colorYellow = getResources().getColor(R.color.colorYellow);        int colorGreen = getResources().getColor(R.color.colorGreen);        mExamGrade = new examark();        name = new examark();        mark = mExamGrade.getExamMark();// storing the exam mark in the mark variable        mGradeTextView = (TextView) findViewById(R.id.grade); // initializing the view responsible for showing the final mark        mGradeTextView.setText(String.valueOf(mark));        mNameTextView = (TextView) findViewById(R.id.name_text_view);        String nameOfQuizzer = name.getNameOfQuizTaker();        mNameTextView.setText(nameOfQuizzer);
查看完整描述

2 回答

?
飲歌長嘯

TA貢獻1951條經(jīng)驗 獲得超3個贊

您可以實施以下選項之一:

  • 不好但很快 - 在你Activity的構(gòu)造函數(shù)中初始化列表而不是onCreate()方法

  • 正確但緩慢 - 將您的值存儲在數(shù)據(jù)庫中,并在需要時獲取它們


查看完整回答
反對 回復 2022-07-14
?
瀟瀟雨雨

TA貢獻1833條經(jīng)驗 獲得超4個贊

您可以遵循單例模式。本質(zhì)上,您希望創(chuàng)建一個可以從任何地方訪問的全局列表。你可以把它放在幾個地方,我建議Application把它放在那里作為一個好的開始。


您可能有自己的Application,但如果沒有,您還需要在清單中注冊它。


所以,我創(chuàng)建了一個名為 的應用程序MyApp,它從Application. 這將包含我們可以從任何地方訪問的答案列表。


public class MyApp extends Application {


    // A public static list of answers

    public static ArrayList<answers_preview_data> answers = new ArrayList<>();


    @Override

    public void onCreate() {

        super.onCreate();

        // do other app setup ...

    }

}

現(xiàn)在,在您的問題中,我們可以輕松地向此列表添加新答案。


public class QuestionOne extends AppCompatActivity implements View.OnClickListener {


    @Override

    public void onClick(View v) {

        // Adding the new answer to your list.

        MyApp.answers.add(new answers_preview_data());

    }


}

在您的 Grade 課程中,我們可以獲取列表并在本地使用它。


public class Grade extends AppCompatActivity {


    private ArrayList<answers_preview_data> mPreviewArrayList;


    @Override

    protected void onCreate(@Nullable Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);


        mPreviewArrayList = MyApp.answers;

        // use your list ...

    }

}


查看完整回答
反對 回復 2022-07-14
  • 2 回答
  • 0 關(guān)注
  • 91 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號