2

私は2つのタブを持つタブアクティビティを持っています。

このタブアクティビティには、ローカルデータベースを検索するための編集テキストとボタンがあります。

私はタブコンテンツとしてリストアクティビティクラスを持っています。フレームレイアウトで表示します。

tabactivity にある edittext に入力されたテキストに基づいて、その listactivity を更新したいと考えています。

どうやってするか?

私はリストアクティビティでメソッドを作成しました:

public void search(String temp) {
String val=temp;
try{
c=BruTube_Videos.this.getContentResolver().query(Constants.CONTENT_URI, null, Constants.TITLE+" like '%"+val+"%'", null, "DATETIME("+Constants.PUBLISHED+") DESC");
}catch(Exception e){
Log.v(TAG, "exp in cursor");
}
show(c);
}

次のようにタブアクティビティでこのメソッドを呼び出します。

EditText et1=(EditText) findViewById(R.id.EditText01);
String temp=et1.getText().toString();
BruTube_Videos vdo_obj=new BruTube_Videos();
vdo_obj.search(temp);

logcat に例外が表示されます。

02-12 16:58:26.623: VERBOSE/BruTube_Videos(227): Brutube 検索の例外:java.lang.IllegalStateException: onCreate() の前にアクティビティでシステム サービスを利用できません

どうすれば管理できますか?

ありがとう。

4

1 に答える 1

1
BruTube_Videos vdo_obj=new BruTube_Videos();

でコンストラクターを呼び出さないでくださいActivity。アクティビティを作成することはありません。Android にアクティビティを開始するように指示します。それがあなたのエラーの原因です。

アクティビティを完全に取り除き、編集フォームのレイアウトTabActivityViews1 つ、ListView. そうすれば、アクティビティが 1 つしかないため、コードの行先について混乱することはありません。これは、プログラミング、メモリ、CPU、およびバッテリー使用率の観点からもより効率的です。

于 2010-02-14T12:36:13.583 に答える