onItemClick的问题

时间:2011-08-09 17:42:57

标签: android

这可能真的很长,我很抱歉那个读完这一切的穷人。

目标:我想创建一个Pokemon Pokedex应用程序(是的,我知道非常幼稚)。我认为这对于第一个构建应用程序非常有用,因为有大量数据需要处理。对于那些不熟悉口袋妖怪的人来说,它基本上是#001 - #649列表中的生物。我想在列表中显示所有生物并让用户点击该生物。点击该生物后,它将在不同的屏幕上显示有关它的统计数据。

好的回到编程......

package com.pokemon.pokdex;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;

public class PokedexActivity extends ListActivity {
     @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(),
                    R.array.pokemon_titles, R.layout.list_item));

            final String[] links = getResources().getStringArray(R.array.pokemon_stats);

            getListView().setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    String content = links[position];
                }
            });
        }
}

我在getListView().setOnItemClickListener(new OnItemClickListener() {的{​​{1}}和OnItemClickListener()所出现错误。它表示View view的{​​{1}}和The type new AdapterView.OnItemClickListener(){} must implement the inherited abstract method AdapterView.OnItemClickListener.onItemClick(AdapterView<?>, View, int, long)无法解析为{<1}}

的类型
OnItemClickListener()

在此文件中,我收到View view,错误。错误package com.pokemon.pokdex; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.webkit.WebView; import android.widget.ArrayAdapter; public class PokedexViewActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pokemon_stats); }; }

我的string.xml文件看起来像 (这是口袋妖怪将被设置的地方以及统计数据。我在下面做了第一个口袋妖怪。)

setContentView(R.layout.pokemon_stats);

我的main.xml看起来像

pokemon_stats cannot be resolved or is not a field

我的list_item.xml看起来像

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Pokemon Pokedex</string>
    <string name="app_name">Pokedex</string>
    <string-array name="pokemon_titles">
    <item>#001 - Bulbasaur</item>
</string-array>
<string-array name="pokemon_stats">
    <item>Grass Type</item>
</string-array>
</resources>

任何帮助表示赞赏,如果你做到这一点,谢谢你们。)

编辑:更新并添加了我得到的确切错误。

3 个答案:

答案 0 :(得分:5)

对于您的错误setContentView(R.layout.pokemon_stats); pokemon_stats不是布局。 main.xml是你的布局。 pokemon_stats是一个字符串数组,这是你的问题。没有名为pokemon_stats.xml的布局,我想你想要R.layout.main

另外,为什么}之后你有一个分号?

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pokemon_stats);

    };

编辑:在您的其他错误的顶部,有视图的那个,您忘记导入android.view.View;加上这个。您可以保留原始代码。

import android.view.View;

应该是这样,真的。

答案 1 :(得分:2)

立即尝试

package com.pokemon.pokdex;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;

    import android.widget.ArrayAdapter;

    public class PokedexActivity extends ListActivity {
         @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(),
                        R.array.pokemon_titles, R.layout.list_item));

                });
            }
           @Override
           public void onItemClick(AdapterView<?> parent, View view,
                            int position, long id) {
               final String[] links = getResources().getStringArray(R.array.pokemon_stats);
                        String content = links[position];        
           }

    }

答案 2 :(得分:0)

您在用于保存信息的textView上没有任何ID,这些信息将在何处显示?

此外,对于您的资源,您的数据实际上应该使用CSV或其他东西保存在单个数组中,这比在不同数组中保存不同信息要简单得多。使用标记或数组顺序解析数据,并以这种方式将它们绑定到您的视图。

您的main.xml也将在此处显示。如果没有为main.xml定义任何内容,程序将会出错。 setContentView()设置整个屏幕的内容视图。如果要将项添加到视图,请使用View.addItem(布局)。

希望这会有所帮助。这是我能做的最好的,没有任何错误信息!