Java 实现Getextra()和Putextra
我正试图使用Java 实现Getextra()和Putextra,java,android,methods,Java,Android,Methods,我正试图使用putextra()和getextra()但我的程序在实现后崩溃了 检查我的代码,让我知道我的错误 如果我没有使用getextra()和putextra()的话,那么代码的工作就完美无缺了 这是头等舱,我从这里得到了价值 public class Assess extends ListActivity { String itm; ArrayAdapter<String> Adapter; @Override protected void onCreate(Bundle
putextra()
和getextra()
但我的程序在实现后崩溃了
检查我的代码,让我知道我的错误
如果我没有使用getextra()
和putextra()
的话,那么代码的工作就完美无缺了
这是头等舱,我从这里得到了价值
public class Assess extends ListActivity {
String itm;
ArrayAdapter<String> Adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getListView().setBackgroundResource(R.drawable.background);
Adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, getResources()
.getStringArray(R.array.English));
setListAdapter(Adapter);
getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
selectItem(pos);
itm = getListView().getItemAtPosition(pos).toString();
// Toast.makeText(getApplicationContext(), "CLicked",
// Toast.LENGTH_SHORT).show();
}
});
}
public void selectItem(int pos) {
switch (pos) {
case 0: {
Intent i;
List<Question> questions = getQuestionSetFromDb();
// Initialise Game with retrieved question set ///
GamePlay c = new GamePlay();
c.setQuestions(questions);
c.setNumRounds(getNumQuestions());
((ChuckApplication) getApplication()).setCurrentGame(c);
// Start Game Now.. //
i = new Intent(this, QuestionActivity.class);
**i.putExtra("itemname", itm);**
//startActivityForResult(i, Constants.PLAYBUTTON);
startActivity(i);
//this.finish();
break;
}
}
}
尝试获取以下字符串: 首先按如下方式更改onItemClickListener:需要为
itm
变量赋值,然后调用selectItem()
方法,使itm
变量不为空
getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
itm = getListView().getItemAtPosition(pos).toString();
selectItem(pos);
}
});
您应该从
getIntent()
读取字符串。阅读如下
topic1=getIntent().getStringExtra(“itemname”)
首先在OnItemClickListener
实现ListView
中初始化itm
字符串,然后调用selectItem()
方法
getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
itm = getListView().getItemAtPosition(pos).toString(); // initialize it first.
selectItem(pos);
// Toast.makeText(getApplicationContext(), "CLicked",
// Toast.LENGTH_SHORT).show();
}
});
它必须是NullPointerException,因为“itm”在该范围内始终为null 你为什么不这样做呢:
itm=getListView().getItemAtPosition(位置).toString();
选择项目(pos、itm);
然后在此方法中将其作为额外项传递
希望对您有所帮助:)当我单击ListView中的项目时,它不起作用,导致强制关闭。请在问题中发布您的错误@SanketNaik还检查我的更新答案。@SanketNaik确保你的
itm
不为空。如果我在那里初始化它,它会在启动上述程序之前终止程序activity@SanketNaik你犯了什么错误?你试过调试你的selectItem()
代码吗?它不起作用,当我在ListView中单击项时,它会导致强制关闭。我想你在“getQuestionSetFromDb();”上出错了当列表项单击时。检查该进程或发布您的logcat错误,除了getextra和putextra之外没有其他错误,因为如果我对它们进行注释,代码执行良好,我也会发布我的logcat,如果我在那里初始化它,则在开始上述活动之前终止程序
getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
itm = getListView().getItemAtPosition(pos).toString();
selectItem(pos);
}
});
String topic1 =getIntent().getStringExtra("itemname");
getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
itm = getListView().getItemAtPosition(pos).toString(); // initialize it first.
selectItem(pos);
// Toast.makeText(getApplicationContext(), "CLicked",
// Toast.LENGTH_SHORT).show();
}
});
topic1 = getIntent().getStringExtra("itemname");