【问题标题】:Can I use one layout with 2 activities?我可以使用一种布局和 2 个活动吗?
【发布时间】:2012-11-08 13:49:10
【问题描述】:

我可以使用一种布局和 2 个活动吗? 我有一个名为“download.java”的活动和一个名为“upload.java”的活动和一个名为“main_site.xml”的布局。

“download.java”是MainActivity 它显示了 2 个按钮和一个空的列表视图-->“下载”、“上传”、“lv”

当我点击上传时,第二个活动“上传”将启动,第二次启动“main_site.xml”,列表视图将填充数据。

现在我有 2 次“main_site.xml”一个在另一个之上... 如何只填充列表视图而不打开“新”布局?

在 download.java 中的 OnCreate

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main_site);

    if (android.os.Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
      }


    Button download = (Button)findViewById(R.id.cmd_download);
    download.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){

            connectFTP("176.28.25.46");
            listItems(); 

            } 
    });

    Button upload = (Button)findViewById(R.id.cmd_upload);
    upload.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){            
            Intent myIntent = new Intent(MainSite.this, upload.class);
            MainSite.this.startActivity(myIntent);
            } 
    });
}

upload.java 中的 OnCreate

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_site);
    myPath = (TextView)findViewById(R.id.path);

    root = Environment.getExternalStorageDirectory().getPath();

    getDir(root);
}

【问题讨论】:

  • 我不确定您要完成什么...您只想更改 ListView 的内容并使其在某个时刻可见?
  • 当我点击下载时,我在 MainActivity (Download.java) 中有 2 个按钮,一切正常,因为它的代码在同一个活动中。并通过按钮上传我调用一个新活动,但我喜欢有相同的布局......而不是再次打开它
  • 所以是的,这就是我喜欢的。我必须将完整的代码放在同一个活动中吗?
  • 然后,您应该只更新 ListView 的内容,并使用同一活动中的代码。
  • 好的,我做到了,现在可以了 :) 你能写一个答案吗,我可以给你一个可以接受的答案...

标签: android listview layout android-activity


【解决方案1】:

您应该只使用同一活动中的代码更新 ListView 的内容。

【讨论】:

    【解决方案2】:

    是的,你可以做到。你没有理由不能这样做。如果您的活动设计布局在这两个活动中相同(或与应用程序中的数量一样多),您可以在不同的活动中使用相同的 layout.xml 文件。

    【讨论】:

    • 但是之后layout.xml被打开了2次......我只是想更新相同的布局列表视图而不是“打开”一个新的活动......
    【解决方案3】:

    使用静态数组列表将数据从上传活动传递到下载活动并完成上传活动,并根据条件使用下载活动的 onResume() 中的静态数组列表

    【讨论】:

      【解决方案4】:

      是的,您可以,您只需使用<include> 作为您的标签,并再次提供@+id/YOUR_NAME 以重复使用相同的布局。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-31
        • 2016-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多