2011-07-27 280 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爲空。

相關問題