我知道这是一个非常基本的问题,但作为一个新手,我无法解决它。 因此,我希望有多个活动使用相同的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”的按钮,现在,你如何编写这些代码呢?
答案 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。没有更改。