Android ArrayList只存储两个值 public类ClientGame扩展活动实现OnClickListener{ 按钮应答1、应答2、应答3、应答4; TextView-txtQuest; 数据库助手dbHelper; 光标电流; 字符串qid; 字符串[]_id={}; 阿雷尔主义者; @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.clientgame); dbHelper=新的DatabaseHelper(此); cur=dbHelper.getRandomQuestion(); 开始管理光标(cur); qid=cur.getString(cur.getColumnIndex(DatabaseHelper.colID)); idList=newarraylist(); idList.add(qid);//我获取当前id 尝试 { Intent extras=getIntent(); 字符串ID=extras.getStringExtra(“_ID”); idList.add(ID);//添加上一个 _ids=(字符串[])idList.toArray(新字符串[0]); 分数=(TextView)findViewById(R.id.textView2); score.setText(“您的分数是”+idList); } 捕获(例外e) { } Answer1=(按钮)findViewById(R.id.button1); 回答1.setText(回答1); 回答1.设置ClickListener(本); Answer2=(按钮)findViewById(R.id.button2); 回答2.setText(回答2); 回答2.setOnClickListener(本); Answer3=(按钮)findViewById(R.id.button3); 回答3.setText(回答3); 回答3.设置ClickListener(本); Answer4=(按钮)findViewById(R.id.button4); 回答4.setText(回答4); 回答4.setOnClickListener(本); } @凌驾 公共无效暂停(){ super.onPause(); finish();} @凌驾 public void onClick(View){//正确答案检查并存储skore和id 如果(视图==findViewById(R.id.button1)) { int i=1; 字符串ID=cur.getString(cur.getColumnIndex(“\u ID”); Intent ini=新的Intent(ClientGame.this,ClientGame.class); ini.putExtra(“_id”,id); 星触觉(ini); } 如果(视图==findViewById(R.id.button2)) { int i=1; 字符串ID=cur.getString(cur.getColumnIndex(“\u ID”); Intent ini=新的Intent(ClientGame.this,ClientGame.class); ini.putExtra(“_id”,id); 星触觉(ini); } if(视图==findViewById(R.id.button3)) { int i=1; 字符串ID=cur.getString(cur.getColumnIndex(“\u ID”); Intent ini=新的Intent(ClientGame.this,ClientGame.class); ini.putExtra(“_id”,id); 星触觉(ini); } 如果(视图==findViewById(R.id.button4)) { int i=1; 字符串ID=cur.getString(cur.getColumnIndex(“\u ID”); Intent ini=新的Intent(ClientGame.this,ClientGame.class); ini.putExtra(“_id”,id); 星触觉(ini); } }
}Android ArrayList只存储两个值 public类ClientGame扩展活动实现OnClickListener{ 按钮应答1、应答2、应答3、应答4; TextView-txtQuest; 数据库助手dbHelper; 光标电流; 字符串qid; 字符串[]_id={}; 阿雷尔主义者; @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.clientgame); dbHelper=新的DatabaseHelper(此); cur=dbHelper.getRandomQuestion(); 开始管理光标(cur); qid=cur.getString(cur.getColumnIndex(DatabaseHelper.colID)); idList=newarraylist(); idList.add(qid);//我获取当前id 尝试 { Intent extras=getIntent(); 字符串ID=extras.getStringExtra(“_ID”); idList.add(ID);//添加上一个 _ids=(字符串[])idList.toArray(新字符串[0]); 分数=(TextView)findViewById(R.id.textView2); score.setText(“您的分数是”+idList); } 捕获(例外e) { } Answer1=(按钮)findViewById(R.id.button1); 回答1.setText(回答1); 回答1.设置ClickListener(本); Answer2=(按钮)findViewById(R.id.button2); 回答2.setText(回答2); 回答2.setOnClickListener(本); Answer3=(按钮)findViewById(R.id.button3); 回答3.setText(回答3); 回答3.设置ClickListener(本); Answer4=(按钮)findViewById(R.id.button4); 回答4.setText(回答4); 回答4.setOnClickListener(本); } @凌驾 公共无效暂停(){ super.onPause(); finish();} @凌驾 public void onClick(View){//正确答案检查并存储skore和id 如果(视图==findViewById(R.id.button1)) { int i=1; 字符串ID=cur.getString(cur.getColumnIndex(“\u ID”); Intent ini=新的Intent(ClientGame.this,ClientGame.class); ini.putExtra(“_id”,id); 星触觉(ini); } 如果(视图==findViewById(R.id.button2)) { int i=1; 字符串ID=cur.getString(cur.getColumnIndex(“\u ID”); Intent ini=新的Intent(ClientGame.this,ClientGame.class); ini.putExtra(“_id”,id); 星触觉(ini); } if(视图==findViewById(R.id.button3)) { int i=1; 字符串ID=cur.getString(cur.getColumnIndex(“\u ID”); Intent ini=新的Intent(ClientGame.this,ClientGame.class); ini.putExtra(“_id”,id); 星触觉(ini); } 如果(视图==findViewById(R.id.button4)) { int i=1; 字符串ID=cur.getString(cur.getColumnIndex(“\u ID”); Intent ini=新的Intent(ClientGame.this,ClientGame.class); ini.putExtra(“_id”,id); 星触觉(ini); } },android,database,arraylist,Android,Database,Arraylist,} 这里的问题是textview上只显示两个ID。最后一个和当前。我想显示用户想要的所有ID。当然不是无限的。那么,我如何创建一个arraylist,比如说10个值,并每次存储id呢?您在列表中只添加了两个id,因此行为是正确的。如果多次创建活动,并且希望使用上次添加的值,则必须执行两项操作: 将列表声明为静态成员: 静态数组列表idList 更改分配方式,如下所示: public class ClientGame extends Activity implements OnClickList
这里的问题是textview上只显示两个ID。最后一个和当前。我想显示用户想要的所有ID。当然不是无限的。那么,我如何创建一个arraylist,比如说10个值,并每次存储id呢?您在列表中只添加了两个id,因此行为是正确的。如果多次创建活动,并且希望使用上次添加的值,则必须执行两项操作:
- 将列表声明为静态成员: 静态数组列表idList
- 更改分配方式,如下所示:
if(idList==null){ idList=newarraylist(); }public class ClientGame extends Activity implements OnClickListener{ Button Answer1, Answer2, Answer3, Answer4; TextView txtQuest; DatabaseHelper dbHelper; Cursor cur; String qid; String[] _ids = {}; ArrayList<String> idList; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.clientgame); dbHelper = new DatabaseHelper(this); cur = dbHelper.getRandomQuestion(); startManagingCursor(cur); qid = cur.getString(cur.getColumnIndex(DatabaseHelper.colID)); idList = new ArrayList<String>(); idList.add(qid); // i take the current id try { Intent extras = getIntent(); String ID = extras.getStringExtra("_id"); idList.add(ID); // add the previous one _ids = (String[]) idList.toArray(new String[0]); score = (TextView)findViewById(R.id.textView2); score.setText("Your score is " + idList); } catch(Exception e) { } Answer1 = (Button) findViewById(R.id.button1); Answer1.setText(answer1); Answer1.setOnClickListener(this); Answer2 = (Button) findViewById(R.id.button2); Answer2.setText(answer2); Answer2.setOnClickListener(this); Answer3 = (Button) findViewById(R.id.button3); Answer3.setText(answer3); Answer3.setOnClickListener(this); Answer4 = (Button) findViewById(R.id.button4); Answer4.setText(answer4); Answer4.setOnClickListener(this); } @Override public void onPause() { super.onPause(); finish(); } @Override public void onClick(View view) { //correct answer check and store skore and id if (view == findViewById(R.id.button1)) { int i = 1; String ID = cur.getString(cur.getColumnIndex("_id")); Intent ini = new Intent(ClientGame.this, ClientGame.class); ini.putExtra("_id", ID); startActivity(ini); } if (view == findViewById(R.id.button2)) { int i = 1; String ID = cur.getString(cur.getColumnIndex("_id")); Intent ini = new Intent(ClientGame.this, ClientGame.class); ini.putExtra("_id", ID); startActivity(ini); } if (view == findViewById(R.id.button3)) { int i = 1; String ID = cur.getString(cur.getColumnIndex("_id")); Intent ini = new Intent(ClientGame.this, ClientGame.class); ini.putExtra("_id", ID); startActivity(ini); } if (view == findViewById(R.id.button4)) { int i = 1; String ID = cur.getString(cur.getColumnIndex("_id")); Intent ini = new Intent(ClientGame.this, ClientGame.class); ini.putExtra("_id", ID); startActivity(ini); } }
public class ClientGame extends Activity implements OnClickListener{
Button Answer1, Answer2, Answer3, Answer4;
TextView txtQuest;
DatabaseHelper dbHelper;
Cursor cur;
String qid;
String[] _ids = {};
ArrayList<String> idList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clientgame);
dbHelper = new DatabaseHelper(this);
cur = dbHelper.getRandomQuestion();
startManagingCursor(cur);
qid = cur.getString(cur.getColumnIndex(DatabaseHelper.colID));
idList = new ArrayList<String>();
idList.add(qid); // i take the current id
try
{
Intent extras = getIntent();
String ID = extras.getStringExtra("_id");
idList.add(ID); // add the previous one
_ids = (String[]) idList.toArray(new String[0]);
score = (TextView)findViewById(R.id.textView2);
score.setText("Your score is " + idList);
}
catch(Exception e)
{
}
Answer1 = (Button) findViewById(R.id.button1);
Answer1.setText(answer1);
Answer1.setOnClickListener(this);
Answer2 = (Button) findViewById(R.id.button2);
Answer2.setText(answer2);
Answer2.setOnClickListener(this);
Answer3 = (Button) findViewById(R.id.button3);
Answer3.setText(answer3);
Answer3.setOnClickListener(this);
Answer4 = (Button) findViewById(R.id.button4);
Answer4.setText(answer4);
Answer4.setOnClickListener(this);
}
@Override
public void onPause() {
super.onPause();
finish(); }
@Override
public void onClick(View view) { //correct answer check and store skore and id
if (view == findViewById(R.id.button1))
{
int i = 1;
String ID = cur.getString(cur.getColumnIndex("_id"));
Intent ini = new Intent(ClientGame.this, ClientGame.class);
ini.putExtra("_id", ID);
startActivity(ini);
}
if (view == findViewById(R.id.button2))
{
int i = 1;
String ID = cur.getString(cur.getColumnIndex("_id"));
Intent ini = new Intent(ClientGame.this, ClientGame.class);
ini.putExtra("_id", ID);
startActivity(ini);
}
if (view == findViewById(R.id.button3))
{
int i = 1;
String ID = cur.getString(cur.getColumnIndex("_id"));
Intent ini = new Intent(ClientGame.this, ClientGame.class);
ini.putExtra("_id", ID);
startActivity(ini);
}
if (view == findViewById(R.id.button4))
{
int i = 1;
String ID = cur.getString(cur.getColumnIndex("_id"));
Intent ini = new Intent(ClientGame.this, ClientGame.class);
ini.putExtra("_id", ID);
startActivity(ini);
}
}
我只是在现有文本的末尾添加了一个逗号和新id。当然,您可能希望使用不同的格式。显示文本和新文本应该足以获得所需的格式。使用静态arraylist并确保获取ID。您是说我应该创建一个包含十个值(null)的arraylist,然后替换它们?如何使用arraylist中的特定idex替换值?否,仅在arraylist:)静态arraylist之前使用静态键。另一方面,你可以照你说的做,因为你给你选择的索引添加了值。是的,我想是这样,但我做不到。你能给我一个提示吗?我编辑了前面的答案,检查最后一部分如何避免再次开始活动。我的朋友,它成功了。谢谢但我不能完全理解它!如果你有时间,就给我发封电子邮件解释一下。再次感谢TextView可以随时更新,您只需创建新字符串。旧的是用getText方法检索的,请看,这将返回一个CharSequence,因此必须使用toString()将其转换为字符串。最后一步是将新id添加到现有字符串中,并将其设置回TextView。希望这能解释一切:)不是文本视图部分,数组列表部分是我不理解的(