对具有不同数据的多个活动使用单个xml布局

时间:2012-01-06 06:40:59

标签: android layout android-activity

我知道这是一个非常基本的问题,但作为一个新手,我无法解决它。 因此,我希望有多个活动使用相同的xml布局(例如,包含1个图像按钮,以及具有不同ID的多个文本视图)。现在,对于每个活动,我希望他们查看相同的布局,但使用每个活动独有的数据覆盖视图。做这个的最好方式是什么?此外,图像按钮应在视频播放器(youtube链接)中打开不同的URL。

有人可以告诉我学习android编程最实用的方法是什么?

更新 这是我目前的代码:

public class TemakiActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.contentviewer);
}

}

例如,我有一个ID为“descriptionviewer”的textview,以及一个ID为“videolink”的按钮,现在,你如何编写这些代码呢?

2 个答案:

答案 0 :(得分:5)

您可以共享相同的布局文件,并在每个活动的onCreate(..)方法中设置视图的属性。

如果要为每个图像按钮打开不同的URL,可以在运行时按如下方式设置

public void onCreate(Bundle b) {

    Button button =(Button)findViewById(R.id.button);
    button.setOnClickListener(new OnClickListener(){
        public void onClick(View v) {
            //different action for each activity
        }
    });
}

答案 1 :(得分:4)

是的,你可以!我有多个活动夸大相同的布局,但他们保存不同的共享偏好。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.same_layout);

    TextView urlDesc = (TextView)findViewById(R.id.descriptionviewer);
    urlDesc.setText("url_1"); //now in other activities-- urlDesc.setText("url_2");


    ImageButton aButton = (ImageButton)findViewById(R.id.videolink);
    aButton.setOnClickListener(aButtonListener);
}

private OnClickListener aButtonListener = new OnClickListener() {
    public void onClick(View v) {
        // go open url_1 here. In other activities, open url_x, url_y, url_z
        finish();
    }
};

相同的代码只是交换要为TextView设置的文本,并在OnClickListener()中打开url。没有更改。