0

我正在为以下代码中的列表视图项目分配操作。但是当我单击列表视图项目时,应用程序“不幸停止”。我提供下面的代码。

package com.lara;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class FamilyActivity extends Activity {

    private ListView lv;
    private String  names[]={"sum","hari","mom","dad"};
    private ArrayAdapter<String> s1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.family1);
        lv=(ListView)findViewById(R.id.listView1);
        s1=new ArrayAdapter<String>(getApplication(), R.layout.text, names);
        lv.setAdapter(s1);
        lv.setOnItemClickListener(new OnItemClickListener() {


            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplication(), 555, Toast.LENGTH_LONG).show();

            }
        });

    }
4

4 回答 4

3

试试下面

s1=new ArrayAdapter<String>(FamilyActivity.this,android.R.layout.simple_list_item_1, names);

并将吐司更改为

Toast.makeText(getApplicationContext(),""+ 555, Toast.LENGTH_LONG).show();

or

Toast.makeText(getApplicationContext(), String.valueOf(555), Toast.LENGTH_LONG).show();

555 是一个 int 值

public static Toast makeText (Context context, int resId, int duration)

查找具有提供的 id 的资源,如果未找到,则会出现资源未找到异常

你需要什么

public static Toast makeText (Context context, CharSequence text, int duration)

所以使用字符串

于 2013-10-27T09:44:39.257 回答
1

像这样试试

Toast.makeText(FamilyActivity.this, ""+500, Toast.LENGTH_LONG).show();
于 2013-10-27T09:44:15.607 回答
0

首先,该R.layout.text布局中有什么?用(类似的东西)运行程序,android.R.layout.simple_list_item1看看它是否崩溃。其次,由于您正在扩展有 getApplication 的类 Activity,我认为您也可以使用this关键字。此外, Toast.makeText 方法的文档显示第二个参数是一个字符串,因此使用 @Raghunandan 的方法可能就可以解决问题。最后一点是请始终提供 logcat 帖子,我不知道如何使用它,并且会在 S/O 上用简单的微不足道的东西来打扰每个人,但是一旦你学会使用它,调试就会很容易,重点是学习如何使用

于 2013-10-27T10:12:15.103 回答
0

应用程序正在停止,因为以下是您需要传递的参数才能显示 Toast。

public static Toast makeText (Context context, CharSequence text, int duration) 

但你正在通过555,这Integer不是CharSequence

像这样更新您的代码

  s1=new ArrayAdapter<String>(getApplicationContext(), R.layout.text, names);

 Toast.makeText(getApplicationContext(), ""+555, Toast.LENGTH_LONG).show();
于 2013-10-27T09:51:38.003 回答