目标:我想创建一个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];
}
});
}
}我在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,的类型
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文件看起来像这样(这是设置口袋妖怪和统计数据的地方。
<?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看起来像
<?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看起来像
<?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" />编辑:更新并添加了我得到的确切错误。
发布于 2011-08-10 01:54:19
对于您的错误,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;应该就是这样,真的。
发布于 2011-08-10 01:55:39
立即尝试
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];
}
}发布于 2011-08-10 01:52:57
您在用于保存信息的textView上没有任何ID,此信息将显示在何处?
此外,对于您的资源,您的数据应该真正保存在一个具有CSV或其他东西的数组中,这将比在不同的数组中保存不同的信息简单得多。使用标记或按数组顺序解析中的数据,并将它们绑定到视图。
您的main.xml也将是这里显示的内容。如果你没有为main.xml定义任何东西,程序将会出错。setContentView()设置整个屏幕的内容视图。如果要向视图中添加项目,请使用View.addItem(布局)。
希望这能有所帮助。这是我能做的最好的事情,没有任何错误消息!
https://stackoverflow.com/questions/7000436
复制相似问题