“包括其他布局”如何动态更改文本?

时间:2012-10-27 12:52:07

标签: android layout include abstract-class

我有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中的文字没有改变....

出了什么问题?

1 个答案:

答案 0 :(得分: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
}

{{1}}