2017-08-22 1 views
1

J'ai l'activité 1 avec 3 vues de texte invisibles et un bouton qui ouvre l'activité 2 avec 3 textes d'édition et un bouton soumettre. Comment puis-je rendre la vue de texte visible et le bouton invisible dans l'activité 1 lorsque j'appuie sur le bouton de soumission dans l'activité 2?Comment changer la visibilité d'un textViews d'un autre bouton d'activités clic dans android?

Je activité à partir de 2 avec startActivityForResult, en appuyant sur le bouton d'envoi sur l'activité 2, il remonte à l'activité 1.

code

pour l'activité 1

public class MainActivity extends AppCompatActivity { 
private static final int ACTIVITY_2_RESULT_CODE = 0; 
Button btn1; 

// This method opens the rod_activity 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Get the view from activity_main.xml 
    setContentView(R.layout.activity_main); 
    // Locate the button in activity_main.xml 
    btn1 = (Button)findViewById(R.id.textView2); 
    // Capture button clicks 
    btn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      // Start SecondActivity.class for result 
      Intent myIntent3 = new Intent(MainActivity.this, 
        SecondActivity.class); 
      startActivityForResult(myIntent3, ACTIVITY_2_RESULT_CODE); 
     } 
    }); 
} 
// This method is called when second activity finishes 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    // Check that it is the second activity with an OK result 
    if (requestCode == ACTIVITY_2_RESULT_CODE) { 
     if (resultCode == RESULT_OK) { 
      // Get string data from Intent 
      String string1 = data.getStringExtra("@id/edittext1"); 
      // Set text view with string 
      TextView textview1 = (TextView)findViewById(R.id.textview1); 
      textview1.setText(string1); 

activité 1 xml

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView" 
    android:layout_marginTop="4dp" 
    android:layout_marginLeft="10dp" 
    android:textStyle="bold" 
    android:text="@string/name" 
    android:textSize="18sp" 
    android:id="@+id/textView1"/> 
<Button 
    android:id="@+id/button1" 
    android:layout_width="65dp" 
    android:layout_height="50dp" 
    android:layout_alignStart="@+id/textView1" 
    android:layout_below="@+id/textView1" 
    android:layout_marginLeft="0dp" 
    android:layout_marginTop="16dp" 
    android:text="@string/name1" 
    android:textStyle="bold" /> 

Code d'activité 2

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Get the view 
    setContentView(R.layout.activity_second); 
// Create the submit button 
    btn1 = (Button)findViewById(R.id.bSubmit); 
    btn1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      // Get the text from EditText and put the string to pass back into an Intent 
      EditText edittext1 = (EditText)findViewById(R.id.edittext1); 
      String stringToPassBack = edittext1.getText().toString(); 
      Intent myIntent1 = getIntent(); 
      myIntent1.putExtra("@id/edittext1", stringToPassBack); 

activité 2 xml

<EditText 
    android:id="@+id/edittext1" 
    android:layout_width="75dp" 
    android:layout_height="wrap_content" 
    android:inputType="number" 
    android:maxLength="02" 
    android:ems="10" 
    android:hint="@string/name2"/> 

<Button 
    android:id="@+id/bSubmit" 
    android:layout_width="100dp" 
    android:layout_height="wrap_content" 
    android:text="@string/submit" 
    android:layout_centerHorizontal="true"/> 
+0

êtes-vous à l'activité permettant de retourner un après avoir appuyé sur soumettre? Vous pouvez démarrer ActivityAcorForResult, vous pouvez stocker la variable dans une classe singleton quelque part ... Il y a une tonne de façons de gérer cela. – anomeric

Répondre

-1

Vous cherchez onActivityResult. Lorsque vous cliquez sur le bouton Soumettre dans l'activité 2, utilisez OnAcitivityResult pour notifier l'activité 1 et masquer votre bouton.

OnActivityResult

0

declear 3 chaîne globale var l'activité 1 et un int

public String Stringvar1=""; 
public String Stringvar2=""; 
public String Stringvar3=""; 
public int intvar = 0; 

quand appuyez sur Envoy chanter valeur dans ces variables string et set int = 1

en fonction Oncreate sur activité 1

textview1.settext(Stringvar1); 
textview2.settext(Stringvar2); 
textview3.settext(Stringvar3); 

et pour la visibilité du bouton

if (intvar == 1) { 
    button.setvisibality(View.VISIBLE); 
}else { 
    button.setvisibality(View.INVISIBLE); 
} 
+0

Mes textviews sont définis sur setText(); à partir d'un data.getStringExtra pour obtenir la valeur de editText dans activity2. Je vais ajouter mon code actuel à la question. –

0

Vous pouvez utiliser une variable enregistrée dans l'ensemble d'activités 2. J'ai un exemple simple pour vous donner une idée. Le code est testé.

Activité un

public class Main1Activity extends AppCompatActivity { 

private TextView one; 
private TextView two; 
private TextView three; 

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

    one = (TextView)findViewById(R.id.one); 
    two = (TextView)findViewById(R.id.two); 
    three = (TextView)findViewById(R.id.three); 

    one.setVisibility(View.GONE); 
    two.setVisibility(View.GONE); 
    three.setVisibility(View.GONE); 

    Button goToActivity2 = (Button)findViewById(R.id.buttonOne); 
    goToActivity2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent gotoTwoIntent = new Intent(MainActivity1.this, MainActivity2.class); 
      startActivity(gotoTwoIntent); 
     } 
    }); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    Bundle bundle = getIntent().getExtras(); 
    if(bundle != null){ 
     String fromTwo = bundle.getString("FROM_TWO"); 
     if(!TextUtils.isEmpty(fromTwo)){ 
      one.setText(bundle.getString("EDITTEXT_VALUE_ONE")); 
      two.setText(bundle.getString("EDITTEXT_VALUE_TWO")); 
      three.setText(bundle.getString("EDITTEXT_VALUE_THREE")); 
     } 
    } 
    } 
} 

Activité Deux

public class Main5Activity extends AppCompatActivity { 

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

    final EditText one = (EditText)findViewById(R.id.one); 
    final EditText two = (EditText)findViewById(R.id.two); 
    final EditText three = (EditText)findViewById(R.id.three); 

    Button backToOne = (Button)findViewById(R.id.button_two); 
    backToOne.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String valueOne = one.getText().toString(); 
      String valueTwo = two.getText().toString(); 
      String valueThree = three.getText().toString(); 

      Intent backToOne = new Intent(MainActivity2.this, Main5Activity1.class); 
      backToOne.putExtra("FROM_TWO", "1"); 
      backToOne.putExtra("EDITTEXT_VALUE_ONE", valueOne); 
      backToOne.putExtra("EDITTEXT_VALUE_ONE", valueTwo); 
      backToOne.putExtra("EDITTEXT_VALUE_ONE", valueThree); 

      startActivity(backToOne); 
     } 
    }); 

    } 
}