J'ai la configuration d'écran suivante dans android. Un bouton sur l'écran1 en cliquant sur lequel vous êtes amené à l'écran2. Screen2 a 2 boutons en bas de l'écran. Un bouton qui affiche une liste de recherche et l'autre qui vous ramène à screen1. Le code pour screen1:Passer d'une activité à l'autre - android
screen1.java
package com.example.screenchange;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class ScreenChange extends Activity {
/** Called when the activity is first created. */
private Button button01;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button01 = (Button)findViewById(R.id.button01);
button01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v(this.toString(), "Inside on click listener for screen 2.");
Intent intent = new Intent(v.getContext(), screen2.class);
Log.v(this.toString(), "Intent created. Moving to start activity.");
startActivity(intent);
}
});
}
}
screen1.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Move to screen 2"
/>
</LinearLayout>
Screen2.java:
package com.example.screenchange;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
public class screen2 extends ListActivity {
private Button button02;
private Button button03;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen2);
button02 = (Button)findViewById(R.id.button02);
button02.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v(this.toString(), "Button02 clicked.");
Intent intent = new Intent(); //takes control back to screen1.
finish();
}
});
button03 = (Button)findViewById(R.id.button03);
button03.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v(this.toString(), "Button03 clicked.");
ArrayAdapter<String> listView = new ArrayAdapter<String>(v.getContext(), R.layout.listview, COUNTRIES);
setListAdapter(listView);
getListView().setTextFilterEnabled(true);
}
});
}
static final String[] COUNTRIES = new String[] {
"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
"Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
"Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
"Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
"Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
"Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
"British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
"Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
"Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
"Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
"Cook Islands"
}
screen2.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Welcome to screen 2">
<Button
android:id="@+id/button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Get back to screen 1."
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:clickable="true">
</Button>
<Button
android:id="@+id/button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Display countries."
android:clickable="true">
</Button>
<ListView
android:id="@+android:id/android:list"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="@id/text1">
</ListView>
</RelativeLayout>
listview.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/text1">
</TextView>
android-manifeste:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.screenchange"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".ScreenChange"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".screen2"
android:label="Screen 2 - New actvity.">
</activity>
</application>
</manifest>
Les problèmes que je reçois sont les suivants: 1. Les
boutons screen2 vont ne répond pas au moment où je passe à screen2. Pas de sortie sur le logcat, rien du tout.
2. Il peut même y avoir des erreurs dans l'affichage de la liste, mais je ne vois rien. Toute aide est la bienvenue,
Sriram
Salut Sriram est il y a quelque chose de mal avec ma réponse affichée ci-dessous. – Vivek
@HellBoy: non, il n'y en a pas. Le code que vous avez posté a bien fonctionné. J'ai juste dû faire quelques ajouts pour m'assurer que les boutons aussi avaient le focus. Ce que j'ai mentionné dans le commentaire de votre réponse. – Sriram
Salut J'ai essayé cet exemple tel quel mais l'application est la fermeture forcée? J'ai utilisé la suggestion de Saurabh, y at-il quelque chose que je fais de mal? Merci –