Как открыть второе действие по нажатию кнопки в приложении для Android

Я учусь создавать приложения для Android, и мне нужна определенная помощь. Я могу'Кажется, я не могу понять, какие биты кода шаблона мне нужно изменить, а какие - статические.

вПЛАНИРОВКА папка у меня естьACTIVITY_MAIN.XML который читает

 
 

 

 

Далее у меня есть вторая активностьACTIVITY_SEND_PHOTOS.XML который

 

 

 

 

Тогда у меня естьMainActivity.java (это .class?) это читает пакет com.example.assent.bc;

 import android.os.Bundle;
 import android.app.Activity;
 import android.view.Menu;
 import android.view.View;

 public class MainActivity extends Activity {

 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
     getMenuInflater().inflate(R.menu.activity_main, menu);
     return true;
 }
 /** Called when the user clicks the Send button */
 public void sendMessage(View view) {
     // Do something in response to button
 }
 }

а потом мойSendPhotos.java файл который есть;

 package com.example.assent.bc;

 import android.os.Bundle;
 import android.app.Activity;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.support.v4.app.NavUtils;

 public class SendPhotos extends Activity {

 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_send_photos);
    getActionBar().setDisplayHomeAsUpEnabled(true);
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_send_photos, menu);
    return true;
 }


 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
    }
    return super.onOptionsItemSelected(item);
 }

 }

Мне бы хотелось, чтобы кнопка в моей основной деятельности связывалась с моей активностью sendphotos, просто открывая эту активность, ничего особенного, не отправляя никаких данных или чего-либо еще.

Я знаю, что где-то мне нужно мое

 Intent i = new Intent(FromActivity.this, ToActivity.class);
 startActivity(i);

но я понятия не имею, что заменитьToActivity.class с или что еще мне нужно где.

 Niranj Patel02 нояб. 2012 г., 12:15
 Usama Sadiq08 апр. 2015 г., 19:20
это может быть лучшим источником для вас
 Emad Aghayi22 апр. 2015 г., 13:10
У класса Intent нет конструктора, который принимает два класса в качестве аргумента! что я должен делать?
 Niranj Patel02 нояб. 2012 г., 12:17
ToActivity.class - ваше второе имя активности

Ответы на вопрос(12)

добавьте следующий код в файл activity_main.xml:


и просто добавьте следующий метод в файл MainActivity.java:

public void buttonClick(View view){
  Intent i = new Intent(getApplicationContext()SendPhotos.class);
  startActivity(i);
}
 Mathieu VIALES22 окт. 2017 г., 12:44
У вас есть опечатка, вопросительный знак перед названием файла
 Md Nakibul Hassan23 окт. 2017 г., 09:33
Извините за ошибку

Замените свой MainActivity.class этим кодом

public class MainActivity extends Activity {

Button b1;
@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 b1=(Button)findViewById(R.id.button1);
 b1.setOnClickListener(new View.onClickListener()
 {
  public void onClick(View v)
   {
       Intent i=new Intent(getApplicationContext(),SendPhotos.class);
       startActivity(i);
    }
 }
 )
}

Добавьте этот код в свой AndroidManifest.xml после и до


Замените следующий код строки:

import android.view.View.OnClickListener;
public class MainActivity extends Activity implements OnClickListener{
   Button button;
    @Override
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button=(Button)findViewById(R.id.button1);
        button.setOnClickListener(this);
      }
       public void onClick(View v) {
        if(v.getId==R.id.button1){
      Intent i = new Intent(FromActivity.this, ToActivity.class);
               startActivity(i);
            }
        }
     }

Добавьте следующие строки в файл манифеста:

   
   
 

В КОДЕКСЕ JAVA}

Button signIn= (Button) findViewById(R.id.btnSignIn);

signIn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(SignInPage.this,MainActivity.class));
            }
        });

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

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent myIntent = new Intent(MainActivity.this, MainActivity2.class);
        MainActivity.this.startActivity(myIntent);       
    }  
});

Ответ на полный нуб от полного нуба:MainActivity это имя первого действия.MainActivity2 это название второго действия.button1 это И.Д. кнопки в XML дляMainActivity Деятельность.

 Henry Aspden08 июл. 2013 г., 15:22
просто чтобы помочь другим ...название кнопки " Вы ссылаетесь на удостоверение личности?
 iAmNotVeryGoodAtThis09 июл. 2013 г., 02:44
В самом деле . Исправлено, чтобы отразить ваши рекомендации

Из деятельности: где вы сейчас находитесь?

Активность: куда ты хочешь пойти?

Intent i = new Intent( MainActivity.this, SendPhotos.class); startActivity(i);

Обе операции должны быть включены в файл манифеста, иначе он не найдет файл класса и не сгенерирует Force close.

Отредактируйте ваш Mainactivity.java

crate button's object;

Теперь напишите код для события клика.

        Button btn = (button)findViewById(R.id.button1);
         btn.LoginButton.setOnClickListener(new View.OnClickListener() 
       {

                @Override
                public void onClick(View v) 
                {
                 //put your intent code here
                }
   });

Надеюсь, это сработает для вас.

 Henry Aspden02 нояб. 2012 г., 13:07
это идет в макете или .java?
 Chintan Khetiya02 нояб. 2012 г., 13:13
хорошо, вы можете поместить этот код в кнопку "событие клика в основном файле Activity.java

Это всегда работает, либо все должно быть в порядке:

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    Button btn = (Button) findViewById(R.id.button1);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick (View v) {
            startActivity(new Intent("com.tobidae.Activity1"));
        }
        //** OR you can just use the one down here instead, both work either way
        @Override
        public void onClick (View v){
            Intent i = new Intent(getApplicationContext(), ChemistryActivity.class);
            startActivity(i);
        }
    }
}

Вы можете перейти к желаемой деятельности по нажатию кнопки. просто добавь

Android: OnClick =»timerApp»эта линия.

xml:

 

In your main activity just add this method:

 public void timerApp(View view){
        Intent intent= new Intent(MainActivity.this,TimerActivity.class);
        startActivity(intent);
    }

ИЛИ в методе onCreate () добавить код ниже

Button btn =findViewById(R.id.timer_app);//Don't need to type casting in android studio 3

btn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, TimerActivity.class);
        startActivity(intent);       
    }  
});

Если у вас есть две кнопки и один и тот же идентификатор, вызовите такие события нажатия кнопки:

Button btn1;
Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

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

    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent(MainActivity.this,target.class);
            startActivity(intent);
        }
    });

    btn2=(Button) findViewById(R.id.button1);//Have same id call previous button---> button1

    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

Когда вы нажали,button1button2 будет работать, и вы не можете открыть второй вид деятельности.

Попробуй это

  Button button;

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

button=(Button)findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        Intent i = new Intent(getApplicationContext(),SendPhotos.class);
                        startActivity(i);
                    }
                });

 }
 J.D.02 нояб. 2012 г., 13:10
@HenryAspden импортирует onclocklistener и кнопку.
 J.D.02 нояб. 2012 г., 13:15
@HenryAspden Я должен отредактировать мой код, теперь попробуйте это. я положил этот код в onCreate попробуйте этот путь.
 J.D.02 нояб. 2012 г., 13:14
@HenryAspden поместите этот код после onCreate и после нахождения вашего идентификатора.
 Henry Aspden02 нояб. 2012 г., 13:08
но где? Я получаю ошибки повсюду. Если я попытаюсь поместить это в .java в затмении

просто следуйте этому шагу (я не пишу код, просто Bcoz, вы можете копировать, вставлять и не учиться) ..

сначала нужно объявить кнопку, которая у вас есть в макете

Дайте ссылку на эту кнопку, найдя ее идентификатор (используя findviewById) в oncreate

setlistener для кнопки (как слушатель setonclick)

последний обрабатывает событие click (означает начать новое действие, используя намерение, как вы уже знаете)

Не забудьте добавить активность в файл манифеста

Кстати, это просто, я хотел бы предложить вам, что лучше начать с простых обучающих программ, доступных в сети.

Удачи на Android

Решение Вопроса

Вы можете перейти к желаемой деятельности по нажатию кнопки. просто добавьandroid:onClick="sendMessage"эта линия.

XML:

 

В своей основной деятельности просто добавьте этот метод:

public void sendMessage(View view) 
{
    Intent intent = new Intent(FromActivity.this, ToActivity.class);
    startActivity(intent);
}

И самое главное: нене забудьте определить свою деятельность вmanifest.xml

           
 
 Vaggelis Manousakis24 окт. 2018 г., 02:29
Это работало нормально для меня. Однако не делаетему нужен setOnClickListener () на его кнопке?
 Mageek21 сент. 2013 г., 20:04
Вы должны добавить> в теге активности
 William Reed22 дек. 2016 г., 05:06
@SrujanBarai да, оба импорта android.view.View; и импортировать android.content.Intent; должны быть импортированы
 Srujan Barai08 июл. 2015 г., 01:15
Это не работает для меня. ,ViewIntent и названия действий в красном. Нужно ли импортировать что-либо для просмотра?

Ваш ответ на вопрос