2012-06-21 1 views
0

je suis self_learner à android.L'écran individuel montre au lieu d'un tabhost dans l'éclipse android

J'ai deux écrans. Le premier écran contient un edittext et un bouton, l'edittext est pour obtenir l'entrée de l'utilisateur et le bouton est pour appeler l'activité de tabhost qui est sur le deuxième écran.

Pendant l'exécution, après avoir reçu la contribution de l'utilisateur, il doit afficher les valeurs appropriées (selon l'entrée de l'utilisateur) à l'un des onglets d'un tabhost qui est sur le deuxième écran.

Mais ici mon problème est, son montrant la réponse sur l'écran séparé, pas sur le format tabhost.

REMARQUE: Dans le code ci-dessous je suppose que seul le problème est sur l'utilisation de la préférence partagée pour stocker et afficher les données à tabhost.please peut-on m'aider?

S'il vous plaît trouver le code ci-dessous

Demo_tabActivity.java

public class Demo_tabActivity extends Activity 
    { 

private static String NAMESPACE = "http://tempuri.org/"; 
    private static String METHOD_NAME = "FahrenheitToCelsius"; 
    private static String SOAP_ACTION = "http://tempuri.org/FahrenheitToCelsius"; 
    private static String URL = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL"; 

    Button btnFar; 
    EditText txtFar,txtshow; 


    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     txtFar = (EditText)findViewById(R.id.editText_in); 

     btnFar = (Button)findViewById(R.id.button1); 
     btnFar.setOnClickListener(new View.OnClickListener() 
     { 
     public void onClick(View v) 
     { 
      String b; 

     //Initialize soap request + add parameters 
     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);  

     //Use this to add parameters 
     request.addProperty("Fahrenheit",txtFar.getText().toString()); 

     //Declare the version of the SOAP request 
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 

     envelope.setOutputSoapObject(request); 
     envelope.dotNet = true; 

     try 
     { 
      HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

      //this is the actual part that will call the webservice 
      androidHttpTransport.call(SOAP_ACTION, envelope); 

      // Get the SoapResult from the envelope body. 

      SoapPrimitive result = (SoapPrimitive)envelope.getResponse(); 

      SharedPreferences sharedPreferences; 
       sharedPreferences=PreferenceManager.getDefaultSharedPreferences(Demo_tabActivity.this); 
      Editor editor = sharedPreferences.edit(); 
      editor.putString("your", "b"); 
      editor.commit(); 

      if(result != null) 
      { 
       b=result.toString(); 
       Intent i = new Intent(getApplicationContext(),Tab_1.class); 
       i.putExtra("goto", b.toString()); 
       startActivity(i); 
      } 
      else 
      { 
       Toast.makeText(getApplicationContext(), "oops!..empty",Toast.LENGTH_SHORT).show(); 
      } 

      } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
      } 
     } 
     }); 

    } 
} 

Tab_1.java

public class Tab_1 extends Activity 
    { 
EditText tv; 
String result; 


    /** Called when the activity is first created. */ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.tab1); 

SharedPreferences sharedPreferences; 
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(Tab_1.this); 
String answer= sharedPreferences.getString("your",""); 

Bundle extras = getIntent().getExtras(); 

if(extras !=null) 
{ 
    result = extras.getString("goto"); 

} 
tv=(EditText)findViewById(R.id.editText_output); 
tv.setText(result); 
} 
    } 

Merci pour votre temps précieux !!

+0

Vous devez apprendre sur la façon d'utiliser le groupe Fragments ou activité (Obsolète). –

+0

Andro Selva Pouvez-vous me guider en envoyant quelques exemples/codes? – Rohith

Répondre

1

okay. laissez-moi l'expliquer brièvement en premier. Lorsque vous appelez startActivity(), cela signifie simplement que vous essayez d'appeler une classe d'activité. Mais cela ne signifie pas que vous serez en mesure d'avoir votre barre d'onglets dans tous les écrans que vous naviguez. Parce que les onglets sont liés à la tabActivity et ce qui signifie qu'il est totalement séparé de l'activité normale. Pour que vos onglets soient visibles dans toutes les pages, vous devez remplacer les vues en restant dans le même tabActivity.

La première étape consiste donc à obtenir l'activité suivante que vous souhaitez afficher en tant que vue et l'ajouter aux onglets. C'est ce que le groupe d'activité veut faire. Voici un très bon exemple de la façon de comprendre ActivityGroup.

ActivityGroup Example

Pour rendre plus facile, Fragments sont introduits. il fait la même opération que le groupe d'activité (pour remplacer les vues). voici quelques exemples,

http://android.codeandmagic.org/2011/07/android-tabs-with-fragments/

http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.html