1

我已经编写了一些代码,但现在它太长了,我想在一个 java 文件中将它分成不同的类。我可以尝试的总是在启动时应用程序崩溃或找不到源。在这种情况下,一个类上有一个方法,我想在主类中调用它以在 textview 中显示,但出现找不到源错误。

package com.valchev.avilight;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends ListActivity {
public DirShow dirShow = new DirShow();
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String s = "Blah Blah!";
    dirShow.myDirShow(s);
}

//Settings layer
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
}

class DirShow extends MainActivity {
public void myDirShow(String s) {
    s = "blah!";
    TextView text = new TextView(this);
    text = (TextView)findViewById(R.id.path);
    text.setText(s);
}
}
4

1 回答 1

0
public DirShow dirShow = new DirShow();

你不能那样做。您正在尝试Activity自己创建对象。如果你想开始新的Activity,你应该使用Context.startActivity. 以下是有关活动如何工作的更多信息。顺便说一句,您不应该尝试同时开始两项活动。一项活动等于(粗略地说)一个用户界面屏幕。如果你想打开新的用户界面,那么你可以开始新的活动。

我真的没有看到DirShow扩展的任何理由Activity,如果您真的坚持使用不同的类,您可以将MainActivity其作为第二个参数myDirShow传递给构造函数或将其传递给构造函数并将其作为成员变量保存在 DirShow 中。也许有更好的方法,但我的 Java 并不是那么好。

于 2012-10-05T15:49:54.467 回答