0

我有 10 个布局,每个布局都是用标题 + 副标题构建的,所以我做了:

public abstract class Menu_Segnalazione extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();
    final String titolo = intent.getStringExtra("titolo");
    final String sottoT = intent.getStringExtra("sottoT");

    //Display back arrow on actionbar
    ActionBar ab = getActionBar();
    ab.setDisplayHomeAsUpEnabled(true);

    setContentView(R.layout.intestazione);
    ((TextView) findViewById(R.id.titolo)).setText("ahh");
    ((TextView) findViewById(R.id.sottoTitolo)).setText("xcvxcv");
}

和:

public class ActivityPalinePensiline extends Menu_Segnalazione {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.anomalia_paline);

    palineAction();

}

R.layout.anomalia_palina 是具有 menu_segnalazione+其他内容的布局 menu_segnalazione 是布局标题+副标题

问题是 R.id.titolo 和 R.id.sottoTitolo 中的文本不会改变....

怎么了?

4

1 回答 1

1

您正在执行的视图初始化Menu_Segnalazione::onCreate已完成,但ActivityPalinePensiline::onCreate您正在通过在 parent::onCreate 之后加载新布局来覆盖它。

您应该将您的标题/副标题初始化代码外部化为您在该方法之后initView()每次调用的代码onCreate()setContentView()

例子 :

public abstract class Menu_Segnalazione extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

protected void initViews() {
    Intent intent = getIntent();
    final String titolo = intent.getStringExtra("titolo");
    final String sottoT = intent.getStringExtra("sottoT");

    //Display back arrow on actionbar
    ActionBar ab = getActionBar();
    ab.setDisplayHomeAsUpEnabled(true);

    setContentView(R.layout.intestazione);
    ((TextView) findViewById(R.id.titolo)).setText("ahh");
    ((TextView) findViewById(R.id.sottoTitolo)).setText("xcvxcv");
}

public class ActivityPalinePensiline extends Menu_Segnalazione {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.anomalia_paline);

    initViews();

    palineAction();

}

@Override
protected void initViews() {
   super.initViews();

   // add here custom initialisation for this activity
}
于 2012-10-27T13:00:39.683 回答