我需要在Android中的activity和它的布局xml之间交换数据。但我没有找到在Android中这样做的方法。例如,mvc模式中的视图和控制器总是有一种在两者之间交换数据的方法。所以我想知道是否有任何方法可以在他们之间交换数据,我是否应该重新思考并意识到没有这样的方式?
答案 0 :(得分:0)
使用下面的代码从活动中的布局中获取值
String value;
EditText editText= (EditText) findViewById(R.id.editText);
value=editText.getText();
答案 1 :(得分:0)
代码:
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
在java类中(如onCreate()):
ImageView image = (ImageView) findViewById(R.id.image_view);
然后,您可以使用image
答案 2 :(得分:0)
我相信你不确定你究竟在问什么。如果你想交换信息,比如在文本字段中输入的ID或文本,那么任何好的android教程都应该能够证明这一点。考虑到您上一次发表的评论,我认为您正在谈论基于GET
和POST
的技术,可以使用REST
和SOAP
或两者来完成,如果您愿意的话。
This问题答案有很好的实现和对这两个Web服务的定义。
P.S。如果这是你正在寻找的东西,那么请回答这个问题。
答案 3 :(得分:0)
作为一些额外的信息,“视图”(XML布局文件)最初由您的活动的onCreate方法设置。在你调用它的父方法(super.onCreate())之后。
为了保持整个活动的范围,我倾向于声明活动所需的所有布局小部件,以便在任何方法之外和类内进行交互。
TextView textWelcomeMessage;
public void MyActivity(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// before calling setContentView() we have the option to change
// window features ex requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_my_activity);
// Now to set the textview
textWelcomeMessage = (TextView) findViewById(R.id.textWelcomeMessage);
// Set some data
textWelcomeMessage.setText("Hello, welcome to my activity");
}
它不像传统的php风格mvc,因为静态类型会稍微改变一下,我们不得不担心范围。但就数据抽象和分离而言,核心原则仍然适用。希望这有助于=)