引用窗口小部件类中的xml布局

时间:2015-05-18 15:44:16

标签: android xml layout widget

所以,我试图从我制作的一个简单小部件的类中引用xml布局。

所以,我的小部件包含一个ImageView和两个TextView。我将为这个小部件添加代码,这样就不会让人感到困惑。

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

所以,正如你所看到的,为每个“Item”添加了一个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布局。

1 个答案:

答案 0 :(得分:0)

所以,实际上,唯一的方法是通过onclick方法传递变量。

我现在正在做的是:我得到两个String变量和一个Int.Strings用于textViews中写入的文本,int用于imageView的backgroundResource的资源ID,将它们传递给第二个活动并在那里使用它们来重新创建项目。

如果有人需要更多详情,请在此留言,我会尽力帮助。