2016-07-13 4 views
0

我々はそれが私がこの利用の活動を見る

のようにそれをプログラムするためのクラスに、このレイアウトや Viewを送ることができますどのように activity_conversation

このレイアウトを使用して見るようにこれは

public class Conversation extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_conversation); 
    } 
} 

私の活動です

myclass m = new myclass(View); 

なぜ私はレイアウトがactivity_conversationと同じである別のクラスを持っているので、これをやりたいのですか?だから私は次のように再利用したい:myclass m = new mycalss(inflate layout);

私はビューを取得し、それを膨らませる別のクラスに渡すことができます。 コードを再利用するのは正しいアプローチですか?

+0

もう少し明確にすることはできますか? –

+1

レイアウトの再利用のために、Androidにクラス '' Fragment'''があります。あなたはそれをチェックアウトすることができます - > https://developer.android.com/guide/components/fragments.html –

+0

@RobinVinzenz 'Fragment'では' service'や 'widnowManger'で使用できません – medo

答えて

1

私はこのレイアウトを送信したり、プログラミングのためのクラスに見ることができますどのようにそれが のように、この

setContentViewを呼び出した後getDecorView()を使用してそれを実行します。

View content_layout = (View)findViewById(android.R.id.content); 
myclass m = new myclass(content_layout); 

または

ViewGroup view=(ViewGroup)getWindow().getDecorView(); 
LinearLayout content_layout = (LinearLayout)view.getChildAt(0); 
myclass m = new myclass(content_layout); 
+0

私はそれを試してみます:D – medo

+0

素敵な答え:) :) – medo

+0

@medo:私の編集の答えを参照してください –

1

このようにしてみてください。

myclass m = new myclass(View); 

public myclass{ 
    public myclass(View yourView){ 
     //the variable yourView is the view passed from another class 
     //you can use it 
     View myView = yourView; 

    } 
} 
+0

私は単にアクティビティから 'view'を取得してクラスに渡すことができますか? – medo