1

私はいくつかのコードを作成しましたが、今は長くなり、1 つの Java ファイル内の別のクラスに分けたいと考えています。何を試しても、起動時にアプリがクラッシュするか、ソースが見つからないことが常にあります。この場合、1つのクラスにメソッドがあり、メインクラスで呼び出してテキストビューに表示したいのですが、ソースが見つからないというエラーが発生します。

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ここでは、アクティビティの仕組みについてもう少し詳しく説明します。ところで、同時に 2 つのアクティビティを開始しようとしないでください。1 つのアクティビティは、(大まかに言うと) 1 つのユーザー インターフェイス画面に相当します。新しいユーザー インターフェイスを開きたい場合は、新しいアクティビティを開始できます。

DirShowextendsの理由はまったくわかりActivityません。別のクラスを本当に主張する場合はMainActivity、2 番目の引数としてmyDirShow渡すか、コンストラクターに渡し、DirShow のメンバー変数として保持できます。もっと良い方法があるかもしれませんが、私のJavaはそれほど良くありません。

于 2012-10-05T15:49:54.467 に答える