【问题标题】:How do I extends View and also extends Activity for the same class如何扩展 View 并为同一个类扩展 Activity
【发布时间】:2014-09-02 21:00:54
【问题描述】:

第二个 Activity 在主 Activity 中按下按钮时被调用:

public class Graphics extends ActionBarActivity {

DrawTheField v;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    v = new DrawTheField(this);

    setContentView(v);

}

这是图形类:

public class DrawTheField extends View {

String FILEballpossession = "ballpossession.txt";




public DrawTheField(Context context) {
    super(context);
    // TODO Auto-generated constructor stub

}


@Override

protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    super.onDraw(canvas);


// graphics stuff here


    FileInputStream fins = null;
    try {
        fins = openFileInput(FILEballpossession);
        byte[] reader = new byte[fins.available()];
        while (fins.read(reader) != -1) {
            ball_possession = new String(reader);
        }
        if (fins != null) {
            fins.close();
        }

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

文件ballpossession.txt 是在Main Activity java 中创建的。这 openFileInput 方法在 Activity 中可用,但在这个恰好是 View 的 DrawTheField 类中不可用。 我怎样才能“扩展视图”和“扩展活动”这个类?

【问题讨论】:

  • 我想你正试图同时从两个超类中获取一些东西,那么你可以将扩展视图的类作为扩展活动的类内部的内部类,并将活动上下文作为反对您的视图类
  • 我想这就是我想要做的......我只需要将文件读入扩展视图类中的字符串。

标签: android android-activity view extends


【解决方案1】:

你没有。 Java 不支持多重继承。

http://javapapers.com/core-java/why-multiple-inheritance-is-not-supported-in-java/

JAVA 省略了许多很少使用、难以理解、令人困惑的特性 根据我们的经验,C++ 带来的痛苦多于好处。这 主要由运算符重载组成(尽管它确实有 方法重载)、多重继承和广泛的自动 强制。

【讨论】:

    【解决方案2】:

    只需将扩展 View 的类作为扩展 Activity 的类中的内部类,或者如果你想分离两个类文件,然后将扩展 Activity 的类作为对象传递给你的类扩展 view 的类。

    我也意识到你在读取一个字符串,然后你也在你的活动中读取了文件并将字符串传递给查看类。

    【讨论】:

      猜你喜欢
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多