【问题标题】:Use single xml layout for multiple activities with different datas对具有不同数据的多个活动使用单个 xml 布局
【发布时间】:2012-02-03 23:23:29
【问题描述】:

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

谁能告诉我学习android编程最实用的方法是什么?

更新 这是我当前的代码:

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

}

例如,我有一个 ID 为“descriptionviewer”的 textview,以及一个 ID 为“videolink”的按钮,现在,你如何将它们编码进去?

【问题讨论】:

  • 你到底想让你的 TextView 和 Button 做什么?

标签: android layout android-activity


【解决方案1】:

您可以共享相同的布局文件,并在每个活动的 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
        }
    });
}

【讨论】:

    【解决方案2】:

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

    @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。无需更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      相关资源
      最近更新 更多