質問編集履歴

1 MakeQuizActivity内にあったMainActivity main = new MainActivity();とstartActivity(intent);を消しました。

j06110611

j06110611 score 12

2019/10/06 17:36  投稿

アクティビティから得た結果をListViewに表示したい
MakeQuizActivityから得たString型の変数titleをListViewに表示したいのですが、ListViewに何も表示されずLogcatでエラーも出てこないです。何が原因なのかが分からないので、教えていただきたいです。
```MainActivity
public class MainActivity extends AppCompatActivity {
   static ArrayList data = new ArrayList<>();
   private static final int REQUEST_CODE = 1;
   @Override
   protected void onActivityResult(int request_Code, int resultCode, Intent result){
       switch(request_Code){
           //MakeQuizActivityから戻ってきた場合
           case(REQUEST_CODE):
               //クイズを作るボタンを押して戻ってきたときの処理
               if(resultCode == RESULT_OK){
                   data.add(result.getStringExtra("INPUT_TILE"));
               }
               //押されなかったときの処理
               else if(resultCode == RESULT_CANCELED){
               }
               break;
           default:
               break;
       }
   }
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       // リスト項目とListViewを対応付けるArrayAdapterを用意する
       final ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data);;
       // ListViewにArrayAdapterを設定する
       ListView listView = (ListView) findViewById(R.id.listView);
       listView.setAdapter(adapter);
       Button button = (Button) findViewById(R.id.makeQuiz_Button1);
       button.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               Intent intent = new Intent(MainActivity.this, com.test.quizmaker.MakeQuizActivity.class);
               startActivityForResult(intent, REQUEST_CODE);
           }
       });
   }
}
```
```MakeQuizActivity
public class MakeQuizActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_make_quiz);
       Button button2 = (Button)findViewById(R.id.makeQuiz_Button2);
       button2.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               Intent intent = new Intent(MakeQuizActivity.this,com.test.quizmaker.MainActivity.class);
               PreferenceManager pm = new PreferenceManager();
               MainActivity main = new MainActivity();  
               SharedPreferences sp = getSharedPreferences("DataStore",MODE_PRIVATE);
               SharedPreferences.Editor editor = sp.edit();
               pm.init(sp,editor);
               String strTitle = ((EditText)findViewById(R.id.editText)).getText().toString();
               String strQuiz = ((EditText)findViewById(R.id.editText2)).getText().toString();
               String strAnswer = ((EditText)findViewById(R.id.editText3)).getText().toString();
               int count = sp.getInt("count",0) + 1;
               pm.saveInt(count);
               pm.saveString(strTitle, PreferenceManager.DataKeys.TITLE, String.valueOf(count));
               pm.saveString(strQuiz, PreferenceManager.DataKeys.QUIZ, String.valueOf(count));
               pm.saveString(strAnswer, PreferenceManager.DataKeys.ANSWER, String.valueOf(count));
               String title = sp.getString(PreferenceManager.DataKeys.TITLE.getValue() + String.valueOf(count), "Nothing");
               intent.putExtra("INPUT_TITLE", title);
               setResult(RESULT_OK, intent);
               startActivity(intent);  
               finish();
               //main.addData(title);  
 
           }
       });
   }
}
コード
```
  • Java

    18678 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android Studio

    5096 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る