#android #android-activity
#Android #android-активность
Вопрос:
Я хочу выполнить простое действие, при котором, когда я нажимаю кнопку, я должен перейти к другому действию. Но в этой программе всякий раз, когда я нажимаю кнопку отправки, возникает ошибка, и программа завершается.
Пожалуйста, проверьте мой код и помогите мне, какую ошибку я допустил.
Мое первое действие
package login.test;
import android.app.Activity;
import android.os.Bundle;
import android.content.*;
import android.widget.*;
import android.view.View;
import android.view.View.OnClickListener;
public class login extends Activity
{
/** Called when the activity is first created. */
EditText e;
Button b;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b=(Button)findViewById(R.id.submit);
e=(EditText)findViewById(R.id.editText1);
b.setOnClickListener( new OnClickListener()
{
@Override
public void onClick(View v)
{
if (v.getId() == R.id.submit)
{
Intent myIntent = new Intent(v.getContext(), some.class);
startActivityForResult(myIntent, 0);
}
else
{
e.setText("cant go");
}
}
});
}
}
второе упражнение
package login.test;
import android.os.Bundle;
import android.app.Activity;
import android.content.*;
import android.widget.*;
import android.view.View;
import android.view.View.OnClickListener;
public class some extends Activity {
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="saan"
/>
<Button android:text="Submit" android:id="@ id/submit" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:text="EditText" android:id="@ id/editText1"></EditText>
</LinearLayout>
welcome.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText android:text="You are welcome" android:id="@ id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
</LinearLayout>
Комментарии:
1. Вы также должны предоставить трассировку стека о своей ошибке, вместо того, чтобы заставлять нас гадать, какое исключение вызывает вашу проблему. Кроме того, вы могли бы попробовать изменить
v.getContext()
наlogin.this
.2. Что вы подразумеваете под трассировкой стека? пожалуйста, скажите мне…
3. Часть журнала, показывающая возникшую ошибку. Также, пожалуйста, проверьте ответы @CapDroid и убедитесь, что у вас есть все необходимые действия, объявленные в вашем
androidManifest
.xml
Ответ №1:
Я думаю, вы пропустили добавление вашего второго действия в menifest..
Поэтому, пожалуйста, добавьте второе действие в menifest.
и, во-вторых, нет необходимости проверять
if (v.getId() == R.id.submit)
потому что вы устанавливаете OnClickListener на кнопку, поэтому v всегда будет нажимать кнопку.
удалите это условие
сравните мой код с вашим..
b.setOnClickListener( new OnClickListener()
{
@Override
public void onClick(View v)
{
Intent myIntent = new Intent(login.this, some.class);
startActivityForResult(myIntent, 0);
}
});
Комментарии:
1. Сэр, я добавил свое второе действие в menifest. пожалуйста, предложите мне другое решение…
Ответ №2:
Попробуйте это
b.setOnClickListener (новый OnClickListener() {
@Override public void onClick (Просмотр v) {
Intent myIntent = new Intent(v.getContext(), some.class);
startActivityForResult(myIntent, 0);
}
});
а также второй класс активности, определенный в AndroidManifest.xml