質問

私は2つのタブを持つtabactivityを持っています。

この私がEDITTEXTいるtabactivityとボタンでローカルデータベースを検索します。

私はtabcontentとしてlistactivityクラスを持っています。それがでframeLayoutで示します。

私はtabactivityであるのEditTextに入力されたテキストに基づいて、そのlistactivityをリフレッシュしたい。

これを行うにはどのように?

私は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);
}

このようなtabactivityでこのメソッドを呼び出す

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

それはlogcatで例外を示しています:

2月12日16:58:26.623:VERBOSE / BruTube_Videos(227):brutube検索における例外:java.lang.IllegalStateException:のonCreate前の活動に利用できないシステムサービス()

私はそれを管理することができますか?

感謝ます。

役に立ちましたか?

解決

BruTube_Videos vdo_obj=new BruTube_Videos();

Activityのコンストラクタを呼び出すことはありません。あなたがそれらを開始するには、Androidを伝える - あなたは活動を作成することはありません。それはあなたのエラーの発生源である。

私は強く、完全に活動を取り除くことをお勧めし、TabActivity上に保持単一Views持っている - あなたの編集フォーム、お使いのListViewである1のレイアウトであるものを。唯一のアクティビティがあるので、次に、あなたは、コードがどこに行くのと混乱はありません。これは、プログラミング、メモリ、CPU、およびバッテリーの利用の観点からも、より効率的である。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top