无法在android中解析符号setOnClickListener

时间:2016-09-02 18:04:51

标签: android onclicklistener

当我运行这个程序时,它反复说“无法解析符号setOnClickListener”。请帮我解决这个问题。

import android.support.v7.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Set the content of the activity to use the activity_main.xml layout file
    setContentView(R.layout.activity_main);
}
// Find the View that shows the numbers category
TextView numbers = (TextView) findViewById(R.id.numbers);

 // Set a click listener on that View
numbers.setOnClickListener(new View.OnClickListener() {
    // The code in this method will be executed when the numbers View is clicked on.
    @Override
    public void onClick(View view) {
        Intent numbersIntent = new Intent(MainActivity.this, Numbers.class);
        startActivity(numbersIntent);
    }
}

}

3 个答案:

答案 0 :(得分:2)

您的代码应位于onCreate方法内,请尝试:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Set the content of the activity to use the activity_main.xml layout file
        setContentView(R.layout.activity_main);

    // Find the View that shows the numbers category
    TextView numbers = (TextView) findViewById(R.id.numbers);

        // Set a click listener on that View
        numbers.setOnClickListener(new View.OnClickListener() {
        // The code in this method will be executed when the numbers View is clicked on.

        @Override
        public void onClick(View view) {
            Intent numbersIntent = new Intent(MainActivity.this, Numbers.class);
            startActivity(numbersIntent);
        }
    }
}

详细了解活动及其生命周期:Activity Lifecycle

答案 1 :(得分:1)

你的onClickListener需要在你的onCreate方法中。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set the content of the activity to use the activity_main.xml layout file
        setContentView(R.layout.activity_main);
        // Find the View that shows the numbers category
        TextView numbers = (TextView) findViewById(R.id.numbers);

        // Set a click listener on that View
        numbers.setOnClickListener(new View.OnClickListener() {
        // The code in this method will be executed when the numbers View is clicked on.
            @Override
            public void onClick(View view) {
                Intent numbersIntent = new Intent(MainActivity.this, Numbers.class);
                startActivity(numbersIntent);
           }
     });
     }
}

这应该可以解决错误。还要确保在AndroidManifest中添加了Numbers.class,否则在启动意图时会出现另一个错误。

<activity
        android:name=".Numbers"
        android:label="Numbers"/>

答案 2 :(得分:0)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Set the content of the activity to use the activity_main.xml layout file
    setContentView(R.layout.activity_main);

    // Find the View that shows the numbers category
    TextView numbers = (TextView) findViewById(R.id.numbers);

    // Set a click listener on that View
    numbers.setOnClickListener(new View.OnClickListener() {
    // The code in this method will be executed when the numbers View is clicked on.

    @Override
    public void onClick(View view) {
        Intent numbersIntent = new Intent(MainActivity.this, Numbers.class);
        startActivity(numbersIntent);
    }
}

或:

public class MainActivity extends AppCompatActivity implements OnClickListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Set the content of the activity to use the activity_main.xml layout file
        setContentView(R.layout.activity_main);

        // Find the View that shows the numbers category
        TextView numbers = (TextView) findViewById(R.id.numbers);

        // Set a click listener on that View
        numbers.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        Intent numbersIntent = new Intent(MainActivity.this, Numbers.class);
        startActivity(numbersIntent);
    }
}