android在同一个活动中,在Android中从一个活动转移到另一个活动

我想从一个活动转移到另一个活动(使用虚拟设备).当我点击按钮移动时,我的模拟器会显示一个对话框,显示不幸的是SMS1已停止工作(SMS1是我的应用程序名称).

任何人都可以帮我纠正我的代码吗?

MainActivity.java:

package com.example.sms1;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener

{

Button b1;

TextView tv1;

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

b1 = (Button) findViewById(R.id.button1);

tv1 = (TextView) findViewById(R.id.textView1);

b1.setOnClickListener(this);

}

@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;

}

@Override

public void onClick(View v)

{

// TODO Auto-generated method stub

Intent i = new Intent(getApplicationContext(),NextActivity.class);

startActivity(i);

setContentView(R.layout.avtivity_next);

}

}

这是NextActivity

package com.example.sms1;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.widget.TextView;

public class NextActivity extends Activity {

TextView tv1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.avtivity_next);

tv1 = (TextView) findViewById(R.id.textView1);

}

@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;

}

}

的manifest.xml

package="com.example.sms1"

android:versionCode="1"

android:versionName="1.0" >

android:minSdkVersion="8"

android:targetSdkVersion="17" />

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

android:name="com.example.sms1.MainActivity"

android:label="@string/app_name" >

NextActivityLayout

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".NextActivity" >

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="next activity" />

MainActivity布局

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/hello_world" />

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/textView1"

android:layout_marginTop="80dp"

android:layout_toRightOf="@+id/textView1"

android:text="Button" />

Android Studio,如果你想要实现在一个文本框EditText,用户通过输入"-"来分隔数字,你可以使用自定义的TextWatcher监听器来跟踪文本框的变化。这里是一个简单的步骤说明: 1. **创建TextWatcher**: 创建一个实现了`TextWatcher`接口的内部类或者外部类实例,这个监听器会在文本框内容改变时触发。 ```java private TextWatcher numberSplitter = new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // 不做处理 } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // 当内容变化时检查是否包含 "-" } @Override public void afterTextChanged(Editable s) { if (s.toString().contains("-")) { try { String[] parts = s.toString().split("-"); // 这里可以处理每个部分的数字并存储或显示它们 } catch (NumberFormatException e) { // 如果输入的不是有效的数字格式,恢复默认或提示用户 s.clear(); s.append(""); } } } }; ``` 2. **添加监听器到EditText**: 在你的Activity或Fragment,找到EditText,并将其TextWatcher设置为你刚才创建的那个。 ```java yourEditText.addTextChangedListener(numberSplitter); ``` 3. **处理数字**: 在`onTextChanged`方法,你可以解析输入的部分,如果格式正确,就将它们作为数字操作;如果不正确,则清空输入或显示错误信息。 4. **离开事件**: Android本身并没有提供离开EditText的直接事件,但你可以结合其他方式检测用户的离开行为,比如当焦点转移或键盘收起。例如,在API >= 19的情况下,可以使用`View.OnFocusChangeListener`: ```java yourEditText.setOnFocusChangeListener(new View.OnFocusChangeAdapter() { @Override public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus) { yourEditText.afterTextChanged(null); // 检查并处理离开事件 } } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值