所以我在这里上课:
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);
}
});
}
}
然后这个VclassV扩展^ ^ ^ / / p>
package phil.droid.game;
import android.os.Bundle;
import android.widget.TextView;
public class game_viewer extends GameList
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.game_template);
TextView game_title = (TextView)findViewById(R.id.GameTitle);
game_title.setText("" + pos);
}
}
问题是,无论我点击什么选项,最后一位都将“pos”识别为“0”。有人可以建议一种方法来使它成为pos被识别为在上一课中点击的数字元素吗?
答案 0 :(得分:2)
制作pos
protected
,而不是private
。
答案 1 :(得分:1)
您尝试执行的操作无效:新启动的活动将不会与父级共享相同的存储,即使它们继承也是如此。唯一可行的方法是,如果值是静态的,但这也不是一个好主意。
您应该做的是在开始活动之前将数据作为意图的一部分发送,例如:
intent.putExtra("pos", position);
然后您可以使用
在新活动中将其拉出来getIntent().getIntExtra("pos", -1); // -1 is used as default value
此外,game_viewer
最有可能是一个单独的活动,而不是从GameList继承。