2011-07-27 211 views
0

我已经创建了一个简单的应用程序,允许用户在一个框中键入电话号码,然后按一个按钮开始一个搜索联系人的活动,并返回与输入的电话号码相匹配的联系人姓名。应用程序保持关闭状态

但是,该应用程序保持关闭。

下面是代码

package com.xenom.text; 

import android.app.Activity; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.ContactsContract.PhoneLookup; 
import android.util.Log; 
import android.view.View; 

public class DriveAndTextActivity extends Activity 
{ 

private View button1; 
private String Text1; 


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


    button1.setOnClickListener(new View.OnClickListener() { 
     private String TAG; 

     public void onClick(View v) { 
      Log.d(TAG, "mbutton1 clicked"); 
      Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(Text1)); 
      resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME}); 

} 
    }); 
} 
} 

新代码

package com.xenom.text; 

import android.app.Activity; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.ContactsContract.PhoneLookup; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 

public class DriveAndTextActivity extends Activity 
{ 

private Button mbutton1; 
private String mText1; 

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

    // Obtain handles to UI objects 
    mbutton1 = (Button) findViewById(R.id.button1); 

    mbutton1.setOnClickListener(new View.OnClickListener() { 
     private String TAG; 

     public void onClick(View v) { 
      Log.d(TAG, "mbutton1 clicked"); 
      Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(mText1)); 
      resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME}); 

} 
    }); 
} 
} 

的logcat:

[2011-07-27 22:43:56 - ddmlib]An established connection was aborted by the software in your host machine 
java.io.IOException: An established connection was aborted by the software in your host machine 
    at sun.nio.ch.SocketDispatcher.write0(Native Method) 
    at sun.nio.ch.SocketDispatcher.write(Unknown Source) 
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) 
    at sun.nio.ch.IOUtil.write(Unknown Source) 
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source) 
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) 
    at com.android.ddmlib.Client.sendAndConsume(Client.java:574) 
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348) 
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:420) 
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:854) 
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:822) 
    at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:781) 
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:649) 
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:42) 
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:577) 

[2011-07-27 22:43:56 - ddmlib]An established connection was aborted by the software in your host machine 
java.io.IOException: An established connection was aborted by the software in your host machine 
    at sun.nio.ch.SocketDispatcher.write0(Native Method) 
    at sun.nio.ch.SocketDispatcher.write(Unknown Source) 
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) 
    at sun.nio.ch.IOUtil.write(Unknown Source) 
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source) 
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) 
    at com.android.ddmlib.Client.sendAndConsume(Client.java:574) 
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348) 
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:420) 
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:854) 
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:822) 
    at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:781) 
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:649) 
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:42) 
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:577) 

[2011-07-27 22:43:56 - ddmlib]An established connection was aborted by the software in your host machine 
java.io.IOException: An established connection was aborted by the software in your host machine 
    at sun.nio.ch.SocketDispatcher.write0(Native Method) 
    at sun.nio.ch.SocketDispatcher.write(Unknown Source) 
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) 
    at sun.nio.ch.IOUtil.write(Unknown Source) 
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source) 
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) 
    at com.android.ddmlib.Client.sendAndConsume(Client.java:574) 
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348) 
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:420) 
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:854) 
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:822) 
    at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:781) 
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:649) 
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:42) 
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:577) 

[2011-07-27 22:43:56 - ddmlib]An established connection was aborted by the software in your host machine 
java.io.IOException: An established connection was aborted by the software in your host machine 
    at sun.nio.ch.SocketDispatcher.write0(Native Method) 
    at sun.nio.ch.SocketDispatcher.write(Unknown Source) 
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) 
    at sun.nio.ch.IOUtil.write(Unknown Source) 
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source) 
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) 
    at com.android.ddmlib.Client.sendAndConsume(Client.java:574) 
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348) 
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:420) 
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:854) 
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:822) 
    at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:781) 
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:649) 
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:42) 
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:577) 

[2011-07-27 22:43:57 - ddmlib]An established connection was aborted by the software in your host machine 
java.io.IOException: An established connection was aborted by the software in your host machine 
    at sun.nio.ch.SocketDispatcher.write0(Native Method) 
    at sun.nio.ch.SocketDispatcher.write(Unknown Source) 
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) 
    at sun.nio.ch.IOUtil.write(Unknown Source) 
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source) 
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) 
    at com.android.ddmlib.Client.sendAndConsume(Client.java:574) 
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348) 
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:420) 
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:854) 
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:822) 
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:618) 
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:42) 
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:577) 
+0

您能否运行DDMS并检查logcat对此有何评论?因为我们不太清楚你的错误是什么,所以我们可能(也许只是因为实际上有人可能会在这个网站上关闭这个功能)不能帮助你。使用相关堆栈跟踪(在logcat中找到)的副本更新原始帖子。 – ninetwozero

+0

确定添加了ddms now – Aman

+0

对不起,但我不认为您发布了相关的logcat-output;你能找到关于'com.xenom.text'的一些例外吗? – ninetwozero

回答

1

你在哪里实例化button1实例?你需要像

button1 = (Button)findViewById(R.id.myButton);

请告诉我日志说?我猜你试图在一个空变量引用上设置一个点击监听器时,你正在获得一个NullPointerException

+0

OK即时通讯编辑器上面仍然可以查看编辑好的代码 – Aman

1

你必须初始化按钮。首先,将全局变量button1更改为类型Button。随后,的setContentView(R.layout.main)后,称此:

button1 = (Button)findViewById(R.id.button); 

UPDATE:

的错误也可能是因为你正在尝试做的Uri.encode(mText1)即使mText1为空。

相关问题