如何扩展View并为同一个类扩展Activity

时间:2014-09-02 21:00:54

标签: android android-activity view extends

在主活动中按下按钮时调用第二个活动:

public class Graphics extends ActionBarActivity {

DrawTheField v;

@Override
protected void onCreate(Bundle savedInstanceState) {

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

    setContentView(v);

}

这是Graphics类:

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中可用,但此DrawTheField类中没有恰好是View。 我怎样才能“扩展视图”并为此课程“扩展活动”?

2 个答案:

答案 0 :(得分:1)

你不这样做。 Java不支持多重继承。

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

  

JAVA省略了许多很少使用,知之甚少,令人困惑的功能   C ++,在我们的经验中带来更多的悲伤而不是有益。这个   主要由运算符重载组成(尽管它确实有   方法重载),多重继承和广泛的自动化   强制转换。

答案 1 :(得分:0)

只需将您的类扩展为扩展Activity的类中的内部类,或者如果要将两个类文件分开,然后将将activity作为对象扩展的类传递给类,即扩展视图的类。 / p>

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