两个布局是否将同一个视图对象返回到一个活动?

时间:2012-12-31 17:54:59

标签: android android-layout

    attribute=(TextView) findViewById(R.id.textview1);
    dataAttribute=(TextView) findViewById(R.id.textview2);

            attribute.setClickable(true);
            attribute.setOnClickListener(this);


            dataattribute.setClickable(true);
            dataattribute.setOnClickListener(this);

    //dataAttribute.setOnClickListener(new OnClickListener(){

        //@Override
        //public void onClick(View v) {
            // TODO Auto-generated method stub
            //setContentView(R.layout.activity_main);
        //}
    //});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
public void onClick(View v)
{

    if(v==attribute)
    {
        setContentView(R.layout.second_activity);
    }
    if(v==dataattribute)
    {
         setContentView(R.layout.main_activity);

    }
}

抱歉新手问题我的问题是

有两个布局1- main_activity.xml和2- second_activity.xml main_activity包含textview1,second_activity包含textview2。 单击第一个TextView后设置第二个布局,但单击第二个文本则不显示main_activity.xml布局。

1 个答案:

答案 0 :(得分:0)

您应该这样做:

public void onClick(View v)
{
    switch (v.getId()){
    case R.id.textview1:
        setContentView(R.layout.second_activity);
        dataAttribute=(TextView) findViewById(R.id.textview2);
        dataAttribute.setClickable(true);
        dataAttribute.setOnClickListener(this);

        break;
    case R.id.textview2:
        setContentView(R.layout.main_activity);
        break;
    }
}

您之前所做的是比较对象的引用,在某些条件下可能会有效(如果引用相同),但通常不会,因此这会导致逻辑问题。比较视图的id是正确的方法。您也没有找到textView2,因为它位于其他xml文件中。