В вашем b.class создание нового объекта и установка значения для объекта означает, что он является локальным объектом, и вы можете использовать его только в описании класса. В вашем c.class, когда когда-либо ваш ярлык, новый объект означает, что он только что создан, т. Е. В нем нет никаких значений.
Когда вы когда-либо создавали объект, как показано ниже, он всегда пуст и имеет только нулевые значения.
Profil p = new Profil();
Так подходит к вашему решению, вы можете достичь его многими способами на основе ваших спецификаций/требований/объем
один способ сделать ваши классы, как показано ниже
класс A.class
package a.b.c.model;
public class Profil implements Serializable {
/** auto generated serial version id
*
*/
private static final long serialVersionUID = 1L;
private String pid;
public String getpId() {
return id;
}
public void setpId(String id) {
this.id = id;
}
}
b.Класс
package a.b.c;
import a.b.c.model;
public class bextends Activity {
Profil p = new Profil();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.b);
p.setpId("TEST");
}
после некоторого действия кнопки мыши (навигация от б до в) вы можете отправить сериализованный объект Профиль для класса B в C, а затем вы можете использовать его
ваше намерение должно быть, как это
Intent i = new Intent(this, D.class);
i.putExtra("sampleObject", p);
startActivity(i);
В вашей деятельности «D» вам нужно получить объект, в котором ваша функция отправки б.
d.class
package a.b.c.model;
public class d extends Activity {
Profil p = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.d);
p = (Profil)getIntent().getSerializableExtra("sampleObject");
}
}
ваше намерение должно быть, как это (D деятельность в C деятельности)
// this you can write in your navigation part probably in a button click
Intent i = new Intent(this, C.class);
i.putExtra("sampleObject", p);
startActivity(i);
После получения объекта, когда все ваши Навигационное от деятельности 'D' к деятельности «C 'необходимо передать обновленный объект таким же образом
Тогда ваш класс C должен быть таким, как это
C.class
package a.b.c;
import a.b.c.model;
public class c extends Activity {
Profil p = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c);
p = (Profil)getIntent().getSerializableExtra("sampleObject");
final TextView tex = (TextView) findViewById(R.id.pid);
tex.setText(p.getpId());
}
}
Вот это :) Теперь вы можете использовать обновленный объект Профиль в классе C, а также ..
Примечание :: Как я сказал ранее, это основной подход .. существует слишком много альтернативных подходов, которые будут выполнять ту же самую операцию лучше, чем это
Активность b и c содержит разные объекты ** Profil **. как вы можете получить значение от первого объекта, используя вновь созданный второй? – Emil
проверьте мой обновленный ответ, просто скопируйте его и попробуйте выполнить. Надеюсь, что это даст ваш ожидаемый результат. –