Пожалуйста, проверьте мою программу и найдите ошибку

#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