这可能真的很长,我很抱歉那个读完这一切的穷人。
目标:我想创建一个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>
任何帮助表示赞赏,如果你做到这一点,谢谢你们。)
编辑:更新并添加了我得到的确切错误。
答案 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(布局)。
希望这会有所帮助。这是我能做的最好的,没有任何错误信息!