意图不通过OnClickListener传递

时间:2016-09-13 12:49:31

标签: android

问题: 我希望我的Intent能够带我参加新的活动,但是向我展示了Constructor错误。

package com.example.vidit.books;

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

 public class MainActivity extends AppCompatActivity {

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

    final EditText query = (EditText) findViewById(R.id.query);
    Button submit= (Button) findViewById(R.id.submit);

            submit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    Intent intent= new Intent(MainActivity.class,Request.class);
                    intent.putExtra ( "text", query.getText().toString() );
                    startActivity(intent);

                }
            });
}
}

转换发生的意图是红色下划线。 请求帮助

4 个答案:

答案 0 :(得分:1)

更改此行:

                Intent intent= new Intent(MainActivity.class,Request.class);
                intent.putExtra ( "text", query.getText().toString() );
                startActivity(intent);

到此:

                Intent intent= new Intent(MainActivity.this,Request.class);
                intent.putExtra ( "text", query.getText().toString() );
                startActivity(intent);

答案 1 :(得分:0)

您应该将第一个参数作为上下文传递,如下所示:

Intent intent= new Intent(MainActivity.this,Request.class);
intent.putExtra ( "text", query.getText().toString() );
startActivity(intent);

参考链接:https://developer.android.com/reference/android/content/Intent.html#Intent(android.content.Context,%20java.lang.Class%3C?%3E)

Intent (Context packageContext, Class<?> cls)

答案 2 :(得分:0)

  

使用此

Intent intent= new Intent(MainActivity.this,Request.class);
  

而不是

Intent intent= new Intent(MainActivity.class,Request.class);

答案 3 :(得分:-1)

使用此

Intent intent = new Intent(this,Request.class);