1

MethodFetchDataを含む別のクラスを呼び出そうとすると問題が発生します。AsyncTask

私の主な活動コードは次のとおりです。

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 の中にいて、OnClickListenerそれをthis参照しているためです。

于 2012-11-30T08:14:50.943 に答える
2

インテント コンストラクターは、最初のパラメーターとしてアクティビティ コンテキストを必要とthisonClickListener()、クリック リスナー クラスのオブジェクトを参照します。使用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 の外で行う場合は、

インテント インテント = 新しいインテント(YouActivyti.this,otheractivity.class)

OnCreate内で見つかった場合

インテント インテント = 新しいインテント(this,otheractivity.class)

于 2012-11-30T11:14:28.473 に答える