2015-05-18 46 views
0

所以,我試圖從我製作的一個簡單的窗口類的類中引用xml佈局。引用一個窗口小部件類中的xml佈局

所以,我的小部件包含一個ImageView和兩個TextViews.I將爲這個小部件添加代碼,所以沒有人會感到困惑。

public class Item extends LinearLayout{ 

TextView tv1,tv2; 
ImageView img; 


public Item(Context context,int resid, String t1, String t2) { 
    super(context); 

    setOrientation(HORIZONTAL); 

    setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 

     } 
    }); 

    img = new ImageView(context); 
    tv1 = new TextView(context); 
    tv2 = new TextView(context); 

    img.setBackgroundResource(resid); 
    img.setVisibility(View.VISIBLE); 
    img.setLayoutParams(new ViewGroup.LayoutParams(200, 200)); 

    tv1.setText(t1); 
    tv1.setTextSize(15); 
    tv1.setGravity(Gravity.CENTER); 
    tv1.setLayoutParams(new ViewGroup.LayoutParams(250, 100)); 

    tv2.setText(t2+"lei"); 
    tv2.setTextSize(15); 
    tv2.setGravity(Gravity.CENTER); 
    tv2.setLayoutParams(new ViewGroup.LayoutParams(250,100)); 

    tv1.setBackgroundColor(Color.GREEN); 
    tv2.setBackgroundColor(Color.BLUE); 

    addView(img); 
    addView(tv1); 
    addView(tv2); 
} 

所以,你可以看到,有一個clickListener添加到每個「項目」。什麼我想要做的,是能夠引用一個xml佈局是次活動,讓我可以從這個小部件中操縱這個佈局中的內容。

第二個活動的類:

public class Final extends Activity { 

LinearLayout fl; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.final_layout); 
    View rootView = getWindow().getDecorView().findViewById(android.R.id.content); 

    fl = (LinearLayout) rootView.findViewById(R.id.fl); 

} 

}

對本次活動的XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:id="@+id/fl" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

</LinearLayout> 

因此,再次,要總結,我希望能夠從類Item中添加東西到第二個活動,但我無法參考與第二個活動相關的XML佈局。

+0

我沒有在這裏跟蹤你..你想引用從第一個活動中創建的Widget的第二個活動?當第二個尚未創建? – mmark

+0

實際上,我不關心活動。我只是想知道是否有可能在不創建活動的情況下引用XML文件。因爲我想要做的就是在LinearLayout中添加一些視圖,這個XML文件,沒有別的。 – Vlad

+0

它就像http://trickyandroid.com/protip-inflating-layout-for-your-custom-view/你的意思是什麼? – mmark

回答

0

所以,實際上,唯一的方法就是通過onclick方法傳遞變量。

我現在正在做的是這樣的:我得到兩個字符串變量和一個Int.Strings被用於在textViews和int中爲textView寫入的backgroundResource的資源ID文本,將它們傳遞給第二個活動並使用他們在那裏重新創建項目。

如果有人需要更多的細節,請在這裏留言,我會盡我所能提供幫助。

相關問題