简体   繁体   中英

onItemClick, Intent, startActivity errors

My code:

package elf.app;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import elf.app.entity.ELFList;
import elf.app.entity.Entry;
import elf.app.test.FakeComm;

// TODO Kunna skicka att något är färdigt (ett rum är städat).

public class RoomListActivity extends ListActivity {
private ELFList eList;
//  private FakeComm fakecomm;
private Bundle extras;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.extras = getIntent().getExtras();
    eList = new ELFList();

//      fakecomm = new FakeComm();
//      eList.add(fakecomm.getData());

    String[] strArr = {"asd","sdf","dfg"};
    eList.add(strArr);

    String[] str = eList.returnNames();


    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, str));

    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Entry e = eList.getEntry(position);
            String roominfo = e.toString();


            Intent intent = new Intent(this, RoomInfoActivity.class);
            intent.putExtra("entry",roominfo);
            this.startActivity(intent);

                // old stuff
            // String message;
            // message = eList.getEntryInfo(position);
            // Toast.makeText(getApplicationContext(),
            // message, Toast.LENGTH_SHORT).show();
        }
    });
}

}

I'm getting errors at the following lines:

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

and

this.startActivity(intent);

I don't have much of a clue why I get these errors, the exact output in the editor for these errors are:

  • "The constructor Intent(new AdapterView.OnItemClickListener(){}, Class ) is undefined"
  • "The method startActivity(Intent) is undefined for the type new AdapterView.OnItemClickListener(){}"

I'm an Android newbie so please take that into consideration, however I have studied Java for about a year.

Fix

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

to

Intent intent = new Intent(RoomListActivity.this, RoomInfoActivity.class);

The error is because by this you refer to OnClickListener. The problem is fixed, if you refer to the Activity's this . The second error is the same - wrong reference. Just remove this , and startActivity() method will be searched within the enclosing class too.

try this

Intent intent = new Intent(RoomListActivity.this, RoomInfoActivity.class);
intent.putExtra("entry",roominfo);
RoomListActivity.this.startActivity(intent);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM