2017-07-14 9 views
1

私の主なアクティビティは7つのボタンで構成されていて、それぞれ異なるアクティビティにつながります。ユーザーはデータを入力する必要があります。アクティビティから戻るときにprogressBarを部分的に埋める方法は?

public class DiagramNew extends AppCompatActivity { 

    Button mStateOne; 
    Button mStateTwo; 
    Button mStateThree; 
    Button mStateFour; 
    Button mQPump; 
    Button mQTurb; 
    Button mTemp; 
    Button mTester; 
    ProgressBar mProgress; 
    MotherDatabase myDbMain; 


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

    myDbMain = new MotherDatabase(this, null, null, 8); 


    //Link each .xml component with the activity 
    mStateOne = (Button) findViewById(R.id.stateOneBtn); 
    mStateTwo = (Button) findViewById(R.id.stateTwoBtn); 
    mStateThree = (Button) findViewById(R.id.stateThreeBtn); 
    mStateFour = (Button) findViewById(R.id.stateFourBtn); 
    mQPump = (Button) findViewById(R.id.QPumpBtn); 
    mQTurb = (Button) findViewById(R.id.QTurbBtn); 
    mTemp = (Button) findViewById(R.id.TempBtn); 
    mTester = (Button) findViewById(R.id.testButton); 
    mProgress = (ProgressBar) findViewById(R.id.progressBar); 





    //Create OnClickListeners for each button 
    mStateOne.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent changeAskOne = new Intent(DiagramNew.this, DataStateOne.class); 
      startActivity(changeAskOne); 


     } 
    }); 

    mStateTwo.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent changeAskTwo = new Intent(DiagramNew.this, DataStateTwo.class); 


      startActivity(changeAskTwo); 


     } 
    }); 

    mStateThree.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent changeAskThree = new Intent(DiagramNew.this, DataStateThree.class); 
      startActivity(changeAskThree); 
     } 
    }); 

    mStateFour.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent changeAskFour = new Intent(DiagramNew.this, DataStateFour.class); 
      startActivity(changeAskFour); 

     } 
    }); 

    mQPump.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent changeAskPump = new Intent(DiagramNew.this, DataPump.class); 
      startActivity(changeAskPump); 

     } 
    }); 

    mQTurb.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent changeAskTurb = new Intent(DiagramNew.this, DataTurb.class); 
      startActivity(changeAskTurb); 

     } 
    }); 

    mTemp.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent changeTemp = new Intent(DiagramNew.this, DataTemp.class); 
      startActivity(changeTemp); 
     } 
    }); 


    mTester.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      checkLength(); 


     } 
    }); 




} 

ユーザーがボタンを押すことでダイアグラムアクティビティに戻ると、progressBarがちょっといっぱいになります。

public class DataStateOne extends AppCompatActivity { 

EditText mS1ActualEnthalpy; 
EditText mS1IdealEnthalpy; 
EditText mS1ActualEntropy; 
Button mSaveS1; 
Button mDeleteS1; 
MotherDatabase myDb; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_data_state_one); 

    mS1ActualEnthalpy = (EditText) findViewById(R.id.S1ActualEnthalpyInput); 
    mS1IdealEnthalpy = (EditText) findViewById(R.id.S1IdealEnthalpyInput); 
    mS1ActualEntropy = (EditText) findViewById(R.id.S1ActualEntropyInput); 
    mSaveS1 = (Button) findViewById(R.id.saveS1Btn); 
    mDeleteS1 = (Button) findViewById(R.id.button); 
    myDb = new MotherDatabase(this, null, null, 1); 

    mS1ActualEnthalpy.getBackground().mutate().setColorFilter(getResources().getColor(R.color.shadowEnd), PorterDuff.Mode.SRC_ATOP); 
    mS1IdealEnthalpy.getBackground().mutate().setColorFilter(getResources().getColor(R.color.shadowEnd), PorterDuff.Mode.SRC_ATOP); 
    mS1ActualEntropy.getBackground().mutate().setColorFilter(getResources().getColor(R.color.shadowEnd), PorterDuff.Mode.SRC_ATOP); 

    mSaveS1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      if (mS1ActualEnthalpy.getText().toString().trim().length() > 0 && mS1IdealEnthalpy.getText().toString().trim().length() > 0 && mS1ActualEntropy.getText().toString().trim().length() > 0){ 
       String S1ActualEnthalpyStr = mS1ActualEnthalpy.getText().toString(); 
       String S1IdealEnthalpyStr = mS1IdealEnthalpy.getText().toString(); 
       String S1ActualEntropyStr = mS1ActualEntropy.getText().toString(); 

       Toast myToast = Toast.makeText(getApplicationContext(),"The data are " + S1ActualEnthalpyStr + ", " + S1IdealEnthalpyStr + ", " + S1ActualEntropyStr,Toast.LENGTH_LONG); 
       myToast.show(); 

       addButtonClicked(); 


       Intent returnToDiagram = new Intent(getBaseContext(), DiagramNew.class); 

       startActivity(returnToDiagram); 




      } else { 

       AlertDialog.Builder alert = new AlertDialog.Builder(DataStateOne.this); 
       alert.setTitle("Error"); 
       alert.setCancelable(false); 
       alert.setMessage("You did not fill all the required data."); 
       alert.setPositiveButton("Try Again", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         finish(); 
        } 
       }); 
       alert.show(); 


      } 



     } 
    }); 

    mDeleteS1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      deleteButtonClicked(); 
     } 
    }); 



} 

public void printDatabase() { 
    String dbString = myDb.databaseToString(); 
    Toast.makeText(getApplicationContext(), dbString, Toast.LENGTH_LONG).show(); 
} 

public void addButtonClicked() { 
    Energies energies = new Energies(mS1ActualEnthalpy.getText().toString()); 
    Energies energies2 = new Energies(mS1IdealEnthalpy.getText().toString()); 
    Energies energies3 = new Energies(mS1ActualEntropy.getText().toString()); 
    myDb.addEnergy(energies); 
    myDb.addEnergy(energies2); 
    myDb.addEnergy(energies3); 
    printDatabase(); 

} 

public void deleteButtonClicked() { 
    String inputText = mS1ActualEnthalpy.getText().toString(); 
    String inputText2 = mS1IdealEnthalpy.getText().toString(); 
    String inputText3 = mS1ActualEntropy.getText().toString(); 
    myDb.deleteEnergy(inputText); 
    myDb.deleteEnergy(inputText2); 
    myDb.deleteEnergy(inputText3); 


} 

public void updateProgress(){ 
    int increase = myDb.increaseProgress(1); 
} 




} 
+0

heresここで 'startActivityForResult'は便利ですhttps://developer.android.com/training/basics/intents/result.html –

答えて

0

使用startActivityForResultと引き換えにプログレスバーの進捗状況などの特典を受け活動からの意図を渡します。ここでは、二次活動がどのように見えるかです。進行状況が表示されたら、進捗バーを更新してください。progressBar.setProgress(porgressBar.getProcess + returnProgress);

関連する問題