2013-10-20 60 views
1

我遇到了一个问题。我不知道它应该是这样或者我错过了一些东西。
我想将其他活动的textview文本改为...
1.充实其他活动的布局。
2.获得关于TextView的
我这样做TextView的
3.呼叫的setText(),但是当我切换回它使用布局文字是一样的以前的活动。
因此,我冒昧地在一个新的项目上检查它,只有“hello world”textview on mainactivity和另一个活动来更改“hello world”textview的文本。
但我得到了同样的结果。文字没有改变。它甚至没有给我例外或任何东西。应用正常运行。我不明白为什么会发生这种情况?
代码
MainActivity.java
充气布局和更改textview的值

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

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

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

编辑:如果您在活动中为布局膨胀,它会创建一个视图的新实例。所以你对膨胀布局的改变只会应用到那个实例上。

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

+0

好的。我知道如何改变文字。 LOL:P。但我想知道为什么我不能这样做。在答案的编辑中回答。谢谢。 – johntheripp3r

+0

那么你为什么不提倡那些帮助你解决问题的人,只要你支持他的答案就可以了。 –

+0

@BetteDevine我已经接受了他的回答。我也会这样做。 ;) – johntheripp3r