Java 获取Android中列表项的位置
我在这里有一节课:Java 获取Android中列表项的位置,java,android,oncreate,Java,Android,Oncreate,我在这里有一节课: package phil.droid.game; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget
package phil.droid.game;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
public class GameList extends GamesTrialActivity
{
private ListView lv1;
protected String Game_names[]={"God of War","FOS RO DAH", "dhwaud"};
private String Game_pics[]={"God of War","God of War II"};
private int pos;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.gamelist);
lv1=(ListView)findViewById(R.id.thegamelist);
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , Game_names));
lv1.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
pos = position;
Intent i = new Intent(GameList.this, game_viewer.class);
startActivity(i);
}
});
}
}
问题在于,无论我点击哪个选项,最后一位都会将“pos”识别为“0”。有人能建议一种方法,使pos被识别为上一个类中单击的数字元素吗?使
pos
受保护,而不是私有您尝试执行的操作无法工作:新启动的活动不会与父级共享相同的存储,即使它们继承了。唯一可能的方法是如果值是静态的,但这也不是一个好主意
您应该做的是在开始活动之前将数据作为意图的一部分发送,例如:
intent.putExtra("pos", position);
然后你可以在新的活动中使用
getIntent().getIntExtra("pos", -1); // -1 is used as default value
另外,game\u viewer
应该是一个独立的活动,而不是从GameList继承而来。我会用你看它来换取一个有意义的标题。
getIntent().getIntExtra("pos", -1); // -1 is used as default value