android:onClick=“string”属性详解 (string为点击事件名称)
当一个view设置了此属性,当他被点击时,就会触动这个方法,方法名称为引号里的string
描述:在MainActivity里加入一个EditView和Button,点击Button后EditView里的内容被第二个Activity显示
- MainActivity文件
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.webkit.*;
import android.widget.EditText;
public class MainActivity extends Activity {
// 定义key常量
public final static String EXTRA_MESSAGE = "com.example.newtest.message";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// 定义点击事件,注意sendMessage正是android:onClick里的名称
public void sendMessage(View v)
{
// 定义Intent对象
Intent intent = new Intent(this,DisplayMessage.class);
EditText editText = (EditText) findViewById(R.id.editText1);
// 得到用户输入的信息
String message = editText.getText().toString();
// EXTRA_MESSAGE是键,message是值,可以靠键找值
intent.putExtra(EXTRA_MESSAGE,message);
// 开始Activity
startActivity(intent);
}
}
- MainActivity文件的xml配置文件
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="18dp"
android:ems="10" />
<Button
android:onClick="sendMessage"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_below="@+id/editText1"
android:layout_marginLeft="48dp"
android:layout_marginTop="32dp"
android:text="send" />
- DisplayMessage文件
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class DisplayMessage extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView = new TextView(this);
textView.setText(message);
textView.setTextSize(40);
setContentView(textView);
}
}
- 注意在AndroidManifest文件的<application>里加入
<activity
android:name="com.example.newtest.DisplayMessage">
</activity>