1

我在尝试调用另一个类时遇到问题,该类FetchData又包含AsyncTaskMethod 。

我的主要活动代码是:

public class MainActivity extends Activity {
    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";

    private Button btn;
    private EditText edit;
    private Spinner spinner;
    //private TextView textView;

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

        btn = (Button) findViewById(R.id.button);
        edit = (EditText) findViewById(R.id.edit_message);
        spinner = (Spinner) findViewById(R.id.spinner);
        //textView = (TextView) findViewById(R.id.textView1);

        btn.setOnClickListener(
                new View.OnClickListener()
                {
                    public void onClick(View view)
                    {
                        //Log.v("EditText", edit.getText().toString());
                       // Log.v("Spinner", spinner.getSelectedItem().toString());
                        //if(spinner.getSelectedItem().toString()=="All Types")
                         String[] customarr = {"feature,tv_series,game","feature","tv_series","game"};
                         String selecteditem = customarr[spinner.getSelectedItemPosition()];

                        String url="http://cs-server.usc.edu:23405/examples/servlet/HelloWorldExample?title="+edit.getText().toString()+"&type="+selecteditem;
                        Log.v("url",url);


                        Intent intent=new Intent(this,FetchData.class);
                        String message=url;
                        intent.putExtra(EXTRA_MESSAGE, message);
                        startActivity(intent);
                    }
                });



    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.title_type,android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    //String url="http://cs-server.usc.edu:23405/examples/servlet/HelloWorldExample?title="+edit.getText().toString()+"&type="+spinner.getSelectedItem().toString();
     // Log.v("url",url);

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
            //Object item = parent.getItemAtPosition(pos);

        }
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });


    }
} 

我有错误

The constructor Intent(new View.OnClickListener(){}, Class<FetchData>) is undefined

有任何想法吗。?我想我在某个地方犯了一个愚蠢的错误。

4

6 回答 6

3

Intent intent=new Intent(this,FetchData.class);替换为 的行thisMainActivity.thisthis单独参考onClickListener

Intent intent=new Intent(MainActivity.this,FetchData.class);
于 2012-11-30T08:14:44.337 回答
3

MainActivity.this在构造函数中使用。这是因为您在 a 内部OnClickListenerthis引用它。

于 2012-11-30T08:14:50.943 回答
2

Intent 构造函数需要活动上下文作为其第一个参数,并this引用onClickListener()单击侦听器类的对象。要访问使用中的实例引用,class在您的情况下应该是inner classNameOfTheClass.thisMainActivity.this

更改代码中的以下行

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

Intent intent=new Intent(MainActivity.this,FetchData.class);
于 2012-11-30T08:15:24.683 回答
0

事件中提供的 ested 必须执行以下操作

youActivity.this

如果不是,如果只是为了这个,将引用当前的对象

我建议如果您在 OnCreate 之外执行此操作

Intent intent = new Intent(YouActivyti.this,otheractivity.class)

如果在 OnCreate 中找到

Intent intent = new Intent(this,otheractivity.class)

于 2012-11-30T11:14:28.473 回答
0
Intent intent=new Intent(MainActivity.this,FetchData.class);

你忘了提到 MainActivity

于 2017-04-02T12:53:26.083 回答
-1

-> 你在 oncreate 方法中并使用 onClickListener 接口,所以在 onCLick 方法中,如果你只使用- Intent intent = new Intent(this,classname.class); 那么在那种情况下(this)指的是 onClickListener 接口,但你想使用你当前的类实例,所以这就是你必须提及的原因。

这行代码

*意图意图=新意图(MainActivity.this,FetchData.class);

希望这有帮助!!

于 2017-03-02T13:16:01.257 回答