2
嗨我想在活动之间传递一个对象,但看起来像意图没有找到活动。Android意图通过活动之间的对象
还有的obect类:
public class Contacte implements Serializable {
private String nom;
private String cognoms;
private String telefon;
private int horari; // 0 = horari sense definir; 1 = 24h; 2 = Mati; 3 = Tarda
/**
* Constructor sense parametres que permet crear un objecte contacte amb els
* valors predefinits
*/
public Contacte(){
nom = "Nom";
cognoms = "Cognom";
telefon = "Telefon";
horari = 0;
}
/** Gettes and Setters **/
在MainActivity:
// I use this cause I need to order the objects by priority
ArrayList<Contacte> contactes = new ArrayList<Contacte>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Create Contactes and add to the ArrayList
Contacte c1 = new Contacte();
Contacte c2 = new Contacte();
Contacte c3 = new Contacte();
c1.setNom("John");
c1.setCognoms("Doe");
c1.setTelefon("632145897");
contactes.add(c1);
contactes.add(c2);
contactes.add(c3);
// This is because I have 6 different buttons
Button edita1 = (Button)findViewById(R.id.edita1);
edita1.setOnClickListener(onClickListener);
}
private OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(final View v) {
switch(v.getId()){
case R.id.edita1:
// 1. create an intent pass class name or intnet action name
Intent i = new Intent("com.ioc.eac1.EditaContacte");
// 2. create person object
Contacte c = new Contacte();
c = contactes.get(0);
// 3. put person in intent data
i.putExtra("contacte", c);
// 4. start the activity
startActivity(i);
break;
case R.id.edita2:
//DO something
break;
case R.id.edita3:
//DO something
break;
}
}
};
的EditaContacte:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edita_contacte);
// 1. get passed intent
Intent intent = getIntent();
// 2. get person object from intent
Contacte c = (Contacte) intent.getSerializableExtra("contacte");
// 3. get reference to person textView
EditText editaNom = (EditText) findViewById(R.id.editaNom);
// 4. display name & age on textView
editaNom.setText(c.getNom());
}
而且还有的的Manifest.xml
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
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=".EditaContacte"
android:label="@string/title_activity_edita_contacte" >
</activity>
</application>
我试图调试它,看上去就像个意图没有找到活动。但它在活动清单上声明的活动。我试图发送和在一个活动中创建对象时,单击按钮并显示其他活动的对象属性
是的,你说得对,非常感谢! – proktovief 2014-09-28 07:42:58