ListView无法导航到其他活动

时间:2014-09-16 16:13:13

标签: java android android-layout android-intent android-activity

我正在尝试让我的列表视图根据已点击的特定项目导航到不同的活动。我知道代码是需要的,但我不知道我需要将我改为

package com.apptacularapps.exitsexpertlondonlite;

import android.app.ActionBar;
import android.app.ListActivity;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.text.Html;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import java.util.ArrayList;


    public class WC_line extends ListActivity {

        ArrayList<Item> items = new ArrayList<Item>();

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

            items.add(new EntryItem("Bank", "Fare zone 1"));
            items.add(new EntryItem("Waterloo", "Fare zone 1"));

            EntryAdapter adapter = new EntryAdapter(this, items);

            setListAdapter(adapter);
        }


            @Override
            public void onListItemClick(AdapterView<?> adapterView, View view, int position, long id){
                //When clicked, go to specific activity
                if (position == 0) {
                    //code specific to first list item
                    Intent myIntent = new Intent(view.getContext(), activity_1.class);
                    startActivityForResult(myIntent, 0);
                }
            };
    }

error screenshot

XML XML file

@Override错误

package com.apptacularapps.exitsexpertlondonlite;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import java.util.ArrayList;


public class WC_line extends ListActivity {

    ArrayList<Item> items = new ArrayList<Item>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ListView list = getListView();
        setContentView(R.layout.activity_wc_line);

        items.add(new EntryItem("Bank", "Fare zone 1"));
        items.add(new EntryItem("Waterloo", "Fare zone 1"));

        EntryAdapter adapter = new EntryAdapter(this, items);

        setListAdapter(adapter);
    }

    @Override
    public void onListItemClick(AdapterView<?> adapterView, View view, int position, long id){
        //When clicked, go to specific activity
        if (position == 0) {
            //code specific to first list item
            Intent myIntent = new Intent(view.getContext(), WC_Bank.class);
            startActivityForResult(myIntent, 0);
        }
    };
}

override error

boolean error

3 个答案:

答案 0 :(得分:1)

尝试在super.onCreate

之后添加此内容
  

GetListView();

答案 1 :(得分:1)

如果要扩展ListActivity,那么必须有一个必须实现的方法

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        String list_item=l.getItemAtPosition(position).toString();
        Intent i=new Intent(MainActivity.this,List1.class);
        i.putExtra("list_item", list_item);
        startActivity(i);
    }

在list_item中获取字符串后,你可以做任何你想做的事情。

如果您正在使用扩展活动。

ListView lv;
lv=(ListView)findviewbyid(R.id.listview);
 lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                String list_item=lv.getItemAtPosition(arg2).toString();
            }
        });

现在它依赖于您如何使用该列表视图数据。

答案 2 :(得分:0)

你可以看到你的@Override上有错误,可能是因为你的onListItemClick不正确而没有这样的方法

请参阅documentation

您需要ListView,View,int,long作为参数