1

私は単純な2ビューバスケットボールのスコアキーピングアプリケーションでインテントを使用してビューを切り替えています。最初のメインページはスコアを保持するページで、2番目のページは5人のラインナップ(5つのEditTexts)を保持するページです。すべてが機能しますが、スコアとラインアップは、ビューが切り替えられた後に情報を保持しません。たとえば、スコアが7-0に設定されている場合、ユーザーはラインアップページに移動してプレーヤー名で更新し、ユーザーはスコア保持ページに戻り、スコアは0-0になります。フラグメントはこれを解決するかもしれないと理解していますが、フラグメントを適用する方法はわかりません(私は数回ドキュメントを読みましたが)ので、私が与えることができる最高のヘルプは、私が変更する必要のある具体的な例になります。私のコードは以下に掲載されています。ご協力いただきありがとうございます。インテント(アンドロイド)を使用してビュー切り替え後に情報が保存されない

//////////MainActivity.java (score keeping view)////// 

package com.example.ryan.basketballscorekeeper; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.ViewGroup; 
import android.content.Intent; 

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

    Button lineupButton= (Button) findViewById(R.id.lineup_button); 

     lineupButton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent(MainActivity.this,  Main2Activity.class); 
       startActivity(intent); 
      } 

     }); 
    TextView textView = (TextView) findViewById(R.id.homeTeamScore); 
    textView.setText(homeScore+""); 
    TextView textView2 = (TextView) findViewById(R.id.awayTeamScore); 
    textView.setText(awayScore+""); 



} 


int homeScore=0; //home team score 
int awayScore=0; //away team score 
String awayScoreString=awayScore+""; 
String homeScoreString=homeScore+""; 



public void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
} 

public void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
} 

public void onStart(Bundle savedInstanceState){ 
    setContentView(R.layout.activity_main); 
    onRestoreInstanceState(savedInstanceState); 
} 

public void onPause (Bundle savedInstanceState){ 
    onSaveInstanceState(savedInstanceState); 
} 
public void onDestroy (Bundle savedInstanceState){ 
    onSaveInstanceState(savedInstanceState); 
} 

public void lineupsView(View view){ 
    Intent intent = new Intent(this, Main2Activity.class); 
    setContentView(R.layout.lineups); 

} 

public void mainView(View view){ 
    setContentView(R.layout.activity_main); 
} 

    ///////////////beginning of score-updating code//////////////// 

public void updateStrings(){ 
    homeScoreString=homeScore+""; 
    awayScoreString=awayScore+""; 
} 

public void threePointerAway(View view){ 
    TextView textView = (TextView) findViewById(R.id.awayTeamScore); 
    awayScore+=3; 
    updateStrings(); 
    textView.setText(awayScoreString); 
} 
public void threePointerHome(View view){ 
    TextView textView = (TextView) findViewById(R.id.homeTeamScore); 
    homeScore+=3; 
    updateStrings(); 
    textView.setText(homeScoreString); 
} 
public void twoPointerHome(View view){ 
    TextView textView = (TextView) findViewById(R.id.homeTeamScore); 
    homeScore+=2; 
    updateStrings(); 
    textView.setText(homeScoreString); 
} 
public void twoPointerAway(View view){ 
    TextView textView = (TextView) findViewById(R.id.awayTeamScore); 
    awayScore+=2; 
    updateStrings(); 
    textView.setText(awayScoreString); 
} 
public void freeThrowHome(View view){ 
    TextView textView = (TextView) findViewById(R.id.homeTeamScore); 
    homeScore+=1; 
    updateStrings(); 
    textView.setText(homeScoreString); 
} 
public void freeThrowAway(View view){ 
    TextView textView = (TextView) findViewById(R.id.awayTeamScore); 
    awayScore+=1; 
    updateStrings(); 
    textView.setText(awayScoreString); 
} 

public void reset(View view){ 
    TextView awayView = (TextView) findViewById(R.id.awayTeamScore); 
    TextView homeView = (TextView) findViewById(R.id.homeTeamScore); 
    homeScore=0; 
    awayScore=0; 
    updateStrings(); 
    awayView.setText(awayScoreString); 
    homeView.setText(homeScoreString); 
} 


} 
///////activity_main.xml (score keeping xml file)////// 

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.ryan.basketballscorekeeper.MainActivity" 

>

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:src="@drawable/bballcourt" 
    android:scaleType="centerCrop" 
    /> 


<LinearLayout 

    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    > 
    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:layout_gravity="center" 
     android:orientation="vertical" 
     > 

     <TextView 
      android:textColor="#ffffff" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Home Team" 
      android:layout_margin="10dp" 
      android:layout_gravity="center" 
      android:textSize="15dp" 
      /> 
     <TextView 
      android:textColor="#ffffff" 
      android:id="@+id/homeTeamScore" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="0" 
      android:textSize="50dp" 
      android:layout_gravity="center" 
      /> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="+3 Points" 
      android:background="#ffbf80" 
      android:layout_gravity="center" 
      android:onClick="threePointerHome" 
      android:layout_marginTop="20dp" 
      android:textSize="20dp" 
      android:padding="10dp" 
      /> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="+2 Points" 
      android:background="#ffbf80" 
      android:layout_gravity="center" 
      android:onClick="twoPointerHome" 
      android:layout_marginTop="20dp" 
      android:textSize="20dp" 
      android:padding="10dp" 
      /> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Free Throw" 
      android:background="#ffbf80" 
      android:layout_gravity="center" 
      android:onClick="freeThrowHome" 
      android:layout_marginTop="20dp" 
      android:textSize="17dp" 
      android:padding="10dp" 
      /> 
    </LinearLayout> 

    <View 
     android:layout_width="5dp" 
     android:layout_height="340dp" 
     android:background="#d9d9d9" 
     android:layout_marginTop="40dp" 

     /> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:layout_gravity="center" 
     android:orientation="vertical" 
     > 

     <TextView 
      android:textColor="#ffffff" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Away Team" 
      android:layout_margin="10dp" 
      android:layout_gravity="center" 
      android:textSize="15dp" 
      /> 
     <TextView 
      android:textColor="#ffffff" 
      android:id="@+id/awayTeamScore" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="0" 
      android:textSize="50dp" 
      android:layout_gravity="center" 
      /> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="+3 Points" 
      android:background="#ffbf80" 
      android:layout_gravity="center" 
      android:onClick="threePointerAway" 
      android:layout_marginTop="20dp" 
      android:textSize="20dp" 
      android:padding="10dp" 
      /> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="+2 Points" 
      android:background="#ffbf80" 
      android:layout_gravity="center" 
      android:onClick="twoPointerAway" 
      android:layout_marginTop="20dp" 
      android:textSize="20dp" 
      android:padding="10dp" 
      /> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Free Throw" 
      android:background="#ffbf80" 
      android:layout_gravity="center" 
      android:onClick="freeThrowAway" 
      android:layout_marginTop="20dp" 
      android:textSize="17dp" 
      android:padding="10dp" 
      /> 
    </LinearLayout> 

</LinearLayout> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="reset" 
    android:textAllCaps="true" 
    android:layout_centerHorizontal="true" 
    android:layout_alignParentBottom="true" 
    android:padding="15dp" 
    android:layout_marginBottom="40dp" 
    android:textSize="20dp" 
    android:background="#ffbf80" 
    android:onClick="reset" 

    /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Lineups" 
    android:textAllCaps="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentBottom="true" 
    android:padding="15dp" 
    android:layout_margin="10dp" 
    android:textSize="20dp" 
    android:background="#ff8000" 
    android:id="@+id/lineup_button" /> 

</RelativeLayout> 


///////Main2Activity.java (lineup view)////// 


    package com.example.ryan.basketballscorekeeper; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class Main2Activity extends AppCompatActivity { 

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

    Button mainButton= (Button) findViewById(R.id.main_button); 

    mainButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      Intent intent = new Intent(Main2Activity.this, MainActivity.class); 
      startActivity(intent); 
     } 

    }); 

    EditText editText1 = (EditText) findViewById(R.id.one); 
    one=editText1.getText().toString(); 
    EditText editText2 = (EditText) findViewById(R.id.two); 
    two=editText1.getText().toString(); 
    EditText editText3 = (EditText) findViewById(R.id.three); 
    three=editText1.getText().toString(); 
    EditText editText4 = (EditText) findViewById(R.id.four); 
    four=editText1.getText().toString(); 
    EditText editText5 = (EditText) findViewById(R.id.five); 
    five=editText1.getText().toString(); 

} 
String one,two,three,four,five; //this represents the five players 
} 

////////activity_main2.xml (lineup view xml file)/////// 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.ryan.basketballscorekeeper.Main2Activity" 
android:orientation="vertical" 
> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/bballcourt" 
     android:scaleType="centerCrop" 
     /> 

    <TextView 
     android:id="@+id/lineups" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="#ffffff" 
     android:text="Lineups" 
     android:textSize="30dp" 
     android:padding="30dp" 
     /> 

    <EditText 
     android:textColor="#ffffff" 
     android:id="@+id/one" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textNoSuggestions" 
     android:maxLines="1" 
     android:layout_below="@id/lineups" 
     /> 
    <EditText 
     android:textColor="#ffffff" 
     android:id="@+id/two" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textNoSuggestions" 
     android:maxLines="1" 
     android:layout_below="@id/one" 
     /> 
    <EditText 
     android:textColor="#ffffff" 
     android:id="@+id/three" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textNoSuggestions" 
     android:maxLines="1" 
     android:layout_below="@id/two" 
     /> 
    <EditText 
     android:textColor="#ffffff" 
     android:id="@+id/four" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textNoSuggestions" 
     android:maxLines="1" 
     android:layout_below="@id/three" 
     /> 
    <EditText 
     android:textColor="#ffffff" 
     android:id="@+id/five" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textNoSuggestions" 
     android:maxLines="1" 
     android:layout_below="@id/four" 
     /> 
    <Button 
     android:id="@+id/main_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Score" 
     android:textAllCaps="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentBottom="true" 
     android:padding="15dp" 
     android:layout_margin="10dp" 
     android:textSize="20dp" 
     android:background="#ff8000" 

     /> 
    </RelativeLayout> 

</LinearLayout> 
+0

これは[私が戻るボタンを押したときの前の活動で失われた値](http://stackoverflow.com/questions/14044588/values-lost-in-previous-activity-when-i-hit-back-button - しかし - これは - finis時) – Shubham

答えて

0

以下パブリッククラススコア{

パブリックstatic int型homeScore = 0のようなクレート新しいクラスしよう。 //ホームチームの得点

public static int awayScore = 0; //アウェイチーム

}

を獲得し、どこにして、その変数repalce homeScoreを使用している、これまで

homeScore - > Score.homeScore

awayScore - > Score.awayScore

とMainActivityのローカルスコア変数を削除する

onResume()メソッドのtextviewsを更新する

関連する問題