OnClickListener ў Android Studio

Я спрабую распрацаваць і дадатак з выкарыстаннем новай Android Studio, але я працягваю атрымліваць галоўныя памылкі ў маіх OnClickListeners. У асноўным гэта мне падказвае, што ён не можа дазволіць сімвал «setOnClickListener», і ён таксама не можа вырашыць «View V»

package com.sigmachi.derbydays;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

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


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

    Button button= (Button) findViewById(R.id.standingsButton);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this,StandingsActivity.class));
        }
    });

Гэта значыць код у класе

Information:Compilation completed with 11 errors and 0 warnings in 4 sec
Information:11 errors
Information:0 warnings
/Users/angelo/AndroidStudioProjects/SigmaChiDerbyDaysProject/SigmaChiDerbyDays/src/main/java/com/sigmachi/derbydays/MainActivity.java
    Error:Error:line (28)Gradle:  expected
    Error:Error:line (28)Gradle: illegal start of type
    Error:Error:line (28)Gradle: ')' expected
    Error:Error:line (28)Gradle: ';' expected
    Error:Error:line (28)Gradle: invalid method declaration; return type required
    Error:Error:line (30)Gradle: illegal start of type
    Error:Error:line (30)Gradle: ';' expected
    Error:Error:line (30)Gradle: ')' expected
    Error:Error:line (30)Gradle: not a statement
    Error:Error:line (30)Gradle: ';' expected
    Error:Error:line (33)Gradle: illegal start of type

Those are the errors I am receiving which makes absolutely no sense. Line 28 starts at when I do button.setOnClickListener

EDIT: Цяпер я атрымліваю прымусовае закрыццё пры націску на кнопку

Гэта клас, ён павінен адкрыць, голы клас з адзіным змяненнем з'яўляецца размяшчэнне, каб адкрыць

package com.sigmachi.derbydays;

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

public class StandingsActivity extends Activity {

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


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

}
14
пераканайцеся, што вы абвясцілі StandingsActivity Актыўнасць у AndroidManifest.xml?
дададзена аўтар ρяσѕρєя K, крыніца

10 адказы

Button button= (Button) findViewById(R.id.standingsButton);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        startActivity(new Intent(MainActivity.this,StandingsActivity.class));
    }
});

This code is not in any method. If you want to use it, it must be within a method like OnCreate()

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

    Button button= (Button) findViewById(R.id.standingsButton);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this,StandingsActivity.class));
        }
    });
}
26
дададзена
Button button= (Button) findViewById(R.id.standingsButton);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        startActivity(new Intent(MainActivity.this,StandingsActivity.class));
    }
});

This code is not in any method. If you want to use it, it must be within a method like OnCreate()

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

    Button button= (Button) findViewById(R.id.standingsButton);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this,StandingsActivity.class));
        }
    });
}
26
дададзена

вам трэба зашпільваць initilzation ўнутры метады замест таго, каб спрабаваць initlzing View-й на ўзроўні класа зрабіць гэта як:

 Button button;  //<< declare here..

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button= (Button) findViewById(R.id.standingsButton); //<< initialize here
        //set OnClickListener for Button here
        button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this,StandingsActivity.class));
        }
      });
    }
3
дададзена

вам трэба зашпільваць initilzation ўнутры метады замест таго, каб спрабаваць initlzing View-й на ўзроўні класа зрабіць гэта як:

 Button button;  //<< declare here..

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button= (Button) findViewById(R.id.standingsButton); //<< initialize here
        //set OnClickListener for Button here
        button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this,StandingsActivity.class));
        }
      });
    }
3
дададзена

Гэта працуе для мяне:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_newarea);

    btnSave = (Button)findViewById(R.id.btnSave);

    OnClickListener btnListener = new OnClickListener() {
        @Override
        public void onClick(android.view.View view) {
            finish();
        }
    };
    btnSave.setOnClickListener(btnListener);

}
2
дададзена

Гэта працуе для мяне:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_newarea);

    btnSave = (Button)findViewById(R.id.btnSave);

    OnClickListener btnListener = new OnClickListener() {
        @Override
        public void onClick(android.view.View view) {
            finish();
        }
    };
    btnSave.setOnClickListener(btnListener);

}
2
дададзена
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_my);
    titolorecuperato = (TextView) findViewById(R.id.textView);
    String stitolo = titolorecuperato.getText().toString();

    Button btnHome = (Button) findViewById(R.id.button);

    btnHome.setOnClickListener(new View.OnClickListener() {

       @Override
        public void onClick(View view) {

       }
});

Тое ж самае, як Nic007 сказаў раней.

Вам трэба напісаць код ўсярэдзіне «OnCreate» метад. Выбачайце мяне таксама для водступу ... (першыя каментары тут)

1
дададзена
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_my);
    titolorecuperato = (TextView) findViewById(R.id.textView);
    String stitolo = titolorecuperato.getText().toString();

    Button btnHome = (Button) findViewById(R.id.button);

    btnHome.setOnClickListener(new View.OnClickListener() {

       @Override
        public void onClick(View view) {

       }
});

Тое ж самае, як Nic007 сказаў раней.

Вам трэба напісаць код ўсярэдзіне «OnCreate» метад. Выбачайце мяне таксама для водступу ... (першыя каментары тут)

1
дададзена
@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 boolean onOptionsItemSelected(MenuItem item) {
         int id = item.getItemId();
         if (id == R.id.standingsButton) {
            startActivity(new Intent(MainActivity.this,StandingsActivity.class));
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
0
дададзена
Не маглі б вы растлумачыць, як працуе гэты код, а таксама фармат код у адказе (выкарыстоўвайце чатыры прабелу).
дададзена аўтар Dain Ironfoot III, крыніца
@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 boolean onOptionsItemSelected(MenuItem item) {
         int id = item.getItemId();
         if (id == R.id.standingsButton) {
            startActivity(new Intent(MainActivity.this,StandingsActivity.class));
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
0
дададзена
Не маглі б вы растлумачыць, як працуе гэты код, а таксама фармат код у адказе (выкарыстоўвайце чатыры прабелу).
дададзена аўтар Dain Ironfoot III, крыніца