Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实现Getextra()和Putextra_Java_Android_Methods - Fatal编程技术网

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");