2017-04-09 4 views
0

これはCheckActivity.java私はコールビュー方式

CheckActivity mActivity = new CheckActivity(); 
mActivity.check5(); 

非アクティビティクラスのメソッドを呼び出す方法を

public void check5(View view) { 
    lv = (ListView) findViewById(R.id.listView1); 
    modelItems[5] = new Model("Item", 1); 
    CustomAdapter adapter = new CustomAdapter(this, modelItems); 
    lv.setAdapter(adapter); 
} 

これで私の方法であり、しかし、これは私が得たエラーです。

enter image description here

私のALTは、入力されたとAndroidスタジオは

enter image description here

public void check5() 
{ 
    lv = (ListView) findViewById(R.id.listView1); 
    modelItems[5] = new Model("Item", 1); 
    CustomAdapter adapter = new CustomAdapter(this, modelItems); 
    lv.setAdapter(adapter); 
} 

CheckActivity.java

に新しいメソッドを作成します。しかし、私のコードは、私はそれを修正すればよいか(View view)では動作しないのだろうか?

編集 - 一部の人には、これは悪い考えです。もしこれが不可能なら、私のメソッドを非アクティビティクラスにコピーするには?

+1

アクティビティメソッドを非アクティビティクラスから呼び出す場合にこの動作が発生した場合は、そのベッドのデザインと実践を考えるとよいでしょう。ほとんどの場合、アクティビティメソッドはサーバーアクティビティのみでなければなりません。 –

+1

アクティビティをインスタンス化するのではなく、コールバックメソッドを作成し、パラメータ内のビューを使用しないでください。技術的にNULLを返すようにします。 –

答えて

0

あなたはActivity名前でContextをキャストすることによって非ActivityクラスからActivityメソッドを呼び出して、あなたの非活動クラスにCheckActivityActivityContextを渡す必要があります。あなたはpublicとして宣言されたクラスCheckActvityの変数にアクセスすることができますので、あなたは、メンバ関数と呼ばれているだけのようで

パスビュー。

+0

しかしOPはViewをパラメータとして 'check5()'メソッドに渡します。 – Shashanth

+0

@Shashanth TechticalBecaonは、非アクティビティクラスのビューを持っているか、非アクティビティクラスのメソッド呼び出しのようにする必要があります。 –