【问题标题】:Unable to call intent无法调用意图
【发布时间】:2014-08-23 16:26:32
【问题描述】:

我尝试从其他活动中调用此活动,但是应用程序强制退出。 这是我的代码。

public class Records extends Activity {

// Array of strings storing country names
String[] types = new String[] {
    "Tutorial Room",
    "Lecture Hall",
    "Tutorial Room",
    "Tutorial Room"
};

// Array of integers points to images stored in /res/drawable-ldpi/
int[] icon = new int[]{
    R.drawable.tutorialroom,
    R.drawable.lecturehall,
    R.drawable.tutorialroom,
    R.drawable.tutorialroom
};

// Array of strings to store currencies
String[] info = new String[]{
    "Booking1",
    "Booking2",
    "Booking3",
    "Booking4"
};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Each row in the list stores country name, currency and flag
    List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>();

    for(int i=0;i<4;i++){
        HashMap<String, String> hm = new HashMap<String,String>();
        hm.put("txt", "Name : " + types[i]);
        hm.put("cur","Type : " + info[i]);
        hm.put("flag", Integer.toString(icon[i]) );
        aList.add(hm);
    }

    // Keys used in Hashmap
    String[] from = { "flag","txt","cur" };

    // Ids of views in listview_layout
    int[] to = { R.id.flag,R.id.txt,R.id.cur};

    // Instantiating an adapter to store each items
    // R.layout.listview_layout defines the layout of each item
    SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), aList, R.layout.listview_layout, from, to);

    // Getting a reference to listview of main.xml layout file
    ListView listView = ( ListView ) findViewById(R.id.listview);

    // Setting the adapter to the listView
    listView.setAdapter(adapter);


}

08-23 12:19:50.449: E/AndroidRuntime(7642): 致命异常: main 08-23 12:19:50.449: E/AndroidRuntime(7642): 进程: my.edu.utar.sofebos, PID: 7642 08-23 12:19:50.449: E/AndroidRuntime(7642): java.lang.RuntimeException: 无法启动活动 ComponentInfo{my.edu.utar.sofebos/my.edu.utar.sofebos.Records}: java.lang 。空指针异常 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 android.app.ActivityThread.access$800(ActivityThread.java:135) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 android.os.Handler.dispatchMessage(Handler.java:102) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 android.os.Looper.loop(Looper.java:136) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 android.app.ActivityThread.main(ActivityThread.java:5017) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 java.lang.reflect.Method.invokeNative(Native Method) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 java.lang.reflect.Method.invoke(Method.java:515) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 dalvik.system.NativeStart.main(Native Method) 08-23 12:19:50.449: E/AndroidRuntime(7642): 引起: java.lang.NullPointerException 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 my.edu.utar.sofebos.Records.onCreate(Records.java:71) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 android.app.Activity.performCreate(Activity.java:5231) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 08-23 12:19:50.449: E/AndroidRuntime(7642): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 08-23 12:19:50.449: E/AndroidRuntime(7642): ... 11 更多

【问题讨论】:

  • 这里需要调试.onCreate(Records.java:71)哪一行是71
  • 我应该在里面添加什么?因为此活动无法运行。
  • 请回答我的问题,哪一行是 71
  • listView.setAdapter(adapter); 这是第 71 行
  • 检查您的布局文件 ListView listView = ( ListView ) findViewById(R.id.listview); 是否返回 null

标签: android listview android-intent


【解决方案1】:

由于您在以下几行中收到java.lang.NullPointerException

ListView listView = ( ListView ) findViewById(R.id.listview);
listView.setAdapter(adapter);
  1. 您需要检查main.xml 的ID listview。确保 它存在。
  2. 确保您使用了正确的布局setContentView()

【讨论】:

  • @Mike 如果你注释掉这一行,你会得到一个错误
  • 如果我评论这一行 listView.setAdapter(adapter); 活动能够运行。
  • 但还是无法显示列表视图
  • 如果您没有设置正确的布局,也可能发生这种情况setContentView(R.layout.main);
  • 是的,我从以前的活动中复制了它,所以忘记更改它。修改后解决了我的问题,非常感谢您的帮助!
【解决方案2】:

您是否正在尝试调用您想要的意图?

这是制作电话意图的代码:

Intent callIntent = new Intent(Intent.ACTION_CALL);
    callIntent.setData(Uri.parse("tel:" + phone));
    startActivity(callIntent);

并在您的清单文件中添加这样的权限:

<uses-permission android:name="android.permission.CALL_PHONE" />

【讨论】:

  • 我在之前的活动中进行了意图调用,只是这个活动无法运行。
  • 好的,检查你在清单文件中声明的意图和活动,然后检查你的列表视图 ID 并尝试用另一个代码定义它
猜你喜欢
  • 1970-01-01
  • 2014-04-30
  • 2013-03-18
  • 1970-01-01
  • 2014-07-10
  • 1970-01-01
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多