首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onItemClick的问题

onItemClick的问题
EN

Stack Overflow用户
提问于 2011-08-10 01:42:57
回答 3查看 2.5K关注 0票数 2

目标:我想创建一个Pokemon Pokedex应用程序(是的,我知道非常幼稚)。我认为这对于第一个要构建的应用程序来说是很棒的,因为有大量的数据要处理。对于那些不熟悉精灵宝可梦的人来说,它基本上是从#001到#649的列表中的生物。

好了,回到编程...

代码语言:javascript
复制
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];
                }
            });
        }
}

我在OnItemClickListener()View view说的getListView().setOnItemClickListener(new OnItemClickListener() {上收到错误。它指出OnItemClickListener()和视图的The type new AdapterView.OnItemClickListener(){} must implement the inherited abstract method AdapterView.OnItemClickListener.onItemClick(AdapterView<?>, View, int, long)不能解析为View view,的类型

代码语言:javascript
复制
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);

        };
    }

在这个文件中,我在setContentView(R.layout.pokemon_stats);上得到了一个错误,这里是错误pokemon_stats cannot be resolved or is not a field

我的string.xml文件看起来像这样(这是设置口袋妖怪和统计数据的地方。

代码语言:javascript
复制
<?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>

我的main.xml看起来像

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

我的list_item.xml看起来像

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="24dp"
android:padding="6dp" />

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-10 01:54:19

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

另外,为什么这里的}后面有分号?

代码语言:javascript
复制
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pokemon_stats);

    };

编辑:在你的另一个错误的顶部,有一个视图,你忘记了导入android.view.View;添加这个。你可以保留你的原始代码。

代码语言:javascript
复制
import android.view.View;

应该就是这样,真的。

票数 5
EN

Stack Overflow用户

发布于 2011-08-10 01:55:39

立即尝试

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2011-08-10 01:52:57

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

此外,对于您的资源,您的数据应该真正保存在一个具有CSV或其他东西的数组中,这将比在不同的数组中保存不同的信息简单得多。使用标记或按数组顺序解析中的数据,并将它们绑定到视图。

您的main.xml也将是这里显示的内容。如果你没有为main.xml定义任何东西,程序将会出错。setContentView()设置整个屏幕的内容视图。如果要向视图中添加项目,请使用View.addItem(布局)。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7000436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档