膨胀布局和改变textview的价值

时间:2013-10-20 13:37:44

标签: android

我面临一个问题。我不知道它应该是它的方式还是我错过了什么。
我想通过...更改textview的文本与其他活动 1.扩大其他活动的布局。
2.获取文本视图
3.在textview上调用setText() 我这样做但是当我切换回使用该布局的活动时,文本与之前的相同。
所以我冒昧地在一个新的项目上检查它,只有“hello world”textview关于mainactivity和另一个活动来改变“你好世界”textview的文本。
但我得到了同样的结果。案文没有改变。它甚至没有给我一个例外或任何东西。应用正常运行。我不明白为什么会这样? 代码
MainActivity.java

public class MainActivity extends Activity {

public static TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv = (TextView) findViewById(R.id.lolll);
    tv.setOnClickListener(new View.OnClickListener()
    {

        @Override
        public void onClick(View v)
        {
            startActivity(new Intent(MainActivity.this, MonActivity.class));
        }
    });

}

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

}

MonActivity.java - 活动#2

public class MonActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mon);
    LayoutInflater inf = getLayoutInflater();
    RelativeLayout rel = (RelativeLayout) inf.inflate(R.layout.activity_main, null);
    TextView tv = (TextView) rel.findViewById(R.id.lolll);
    tv.setText("finger crossed");
}

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

}

1 个答案:

答案 0 :(得分:1)

您不能(您可以通过静态视图定义执行此操作,但不应该这样做!)直接从另一个活动更改活动的视图值/属性。使用startActivityForResult并传递并获取onActivityResult方法的更改/新值。

我没有在这里分享任何示例或链接。你可以找到很多样本,只需搜索startActivityForResult;)

编辑:如果您在活动中为布局充气,它会创建一个新的视图实例。因此,对膨胀布局的更改仅适用于该实例。

我希望我的评论可以帮助你。