小白请教问题多个ACTIVITY之间的跳转调试

zhxfeifei 2011-11-08 12:20:10
大家好,我初学Android,对于单步调试遇到了个问题。
1.我新建了两个类,HellowrodActivity 和 ContactPick
2.单步调试时 HellowrodActivity 的断点能停下来, 不过ContactPick里的断点停不下来,创建与按钮点下都不好用。
3.关键代码如下:
HellowrodActivity类
-------------------------------
package your.hello.namespace;

import java.util.ArrayList;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.*;

public class HellowrodActivity extends Activity {
protected static final int PICK_CONTACT = 0;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

btnSend = (Button) findViewById(R.id.btnSend);
btnContact = (Button) findViewById(R.id.btnContact);

edtPhoneNo = (EditText) findViewById(R.id.edtPhoneNo);
edtContent = (EditText) findViewById(R.id.edtContent);

btnContact.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
}
});

btnSend.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
String phoneNo = edtPhoneNo.getText().toString();
String message = edtContent.getText().toString();
}});

}
private Button btnSend;
private Button btnContact;
private EditText edtPhoneNo;
private EditText edtContent;

public void onActivityResult(int reqCode, int resCode, Intent data) {

super.onActivityResult(reqCode, resCode, data);

switch (reqCode) {

case (PICK_CONTACT): {

if (resCode == Activity.RESULT_OK) {
String name;
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
c.moveToFirst();
name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
TextView tv;
tv = (TextView)findViewById(R.id.edtPhoneNo);
tv.setText(name);

}

break;

}

}
}

private void sendSMS(String phoneNumber,String message) {

// ---sends an SMS message to another device---
SmsManager sms = SmsManager.getDefault();
String SENT_SMS_ACTION = "SENT_SMS_ACTION";
String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";

Intent sentIntent = new Intent(SENT_SMS_ACTION);
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, sentIntent,
0);

Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);
PendingIntent deliverPI = PendingIntent.getBroadcast(this, 0,
deliverIntent, 0);

// register the Broadcast Receivers
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context _context, Intent _intent) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(),
"SMS sent success actions", Toast.LENGTH_SHORT)
.show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(getBaseContext(),
"SMS generic failure actions", Toast.LENGTH_SHORT)
.show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast
.makeText(getBaseContext(),
"SMS radio off failure actions",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(getBaseContext(),
"SMS null PDU failure actions", Toast.LENGTH_SHORT)
.show();
break;
}
}
}, new IntentFilter(SENT_SMS_ACTION));

registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context _context, Intent _intent) {
Toast.makeText(getBaseContext(), "SMS delivered actions",
Toast.LENGTH_SHORT).show();
}
}, new IntentFilter(DELIVERED_SMS_ACTION));

if (message.length() > 70) {
ArrayList<String> msgs = sms.divideMessage(message);
for (String msg : msgs) {
sms.sendTextMessage(phoneNumber, null, msg, sentPI, deliverPI);
}
} else {
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliverPI);
}
Toast.makeText(HellowrodActivity.this, "短信发送完成", Toast.LENGTH_LONG).show();
}


}
--------------------------------
ContactPick类
package your.hello.namespace;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.AdapterView.OnItemClickListener;

public class ContactPick extends Activity {

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

Intent orgIntent=getIntent();
Uri queryUri=orgIntent.getData();
final Cursor c = managedQuery(queryUri,
null,
null,
null,
null);

String[] fromColumns=new String[]{ContactsContract.Contacts.DISPLAY_NAME};
int[] toLayoutIDs = new int[] { R.id.itemTextView };
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.listitemlayout, c, fromColumns, toLayoutIDs);
ListView lv = (ListView) findViewById(R.id.contactListView);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int pos,
long id) {
c.moveToPosition(pos);
int rowId = c.getInt(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
Uri outURI = Uri.parse(ContactsContract.Contacts.CONTENT_URI.toString() + rowId);
Intent outData = new Intent();
outData.setData(outURI);
setResult(Activity.RESULT_OK,outData);
finish();
}
});
}
}
...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxfeifei 2011-11-09
  • 打赏
  • 举报
回复
谢谢以上两位的解答,我知道了,我第一个类没有调用第二个类,是我学习的那个教程的问题。
zhxfeifei 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wenzheng38 的回复:]

引用 2 楼 zhxfeifei 的回复:
是不是一个ACTIVITY只能单个的调试呀?


不是吧,只要这些Activity之间存在联系,单步调试时可以设置多个断点的,。。。
[/Quote]
您好,您说的 联系 是指什么方式的联系。 用startActivityForResult(intent, PICK_CONTACT);这个算吗?
zhxfeifei 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 superleolx 的回复:]

首先要确认你的程序是运行到断点的,然后确认你的代码和调试机上运行的是一致的,
[/Quote]

就是点击了那个按键后,应该会跳到 public void onItemClick(AdapterView<?> parent, View view, int pos,
long id)函数里的断点的,结果没有跳过去。
superleolx 2011-11-08
  • 打赏
  • 举报
回复
首先要确认你的程序是运行到断点的,然后确认你的代码和调试机上运行的是一致的,
wenzheng38 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhxfeifei 的回复:]
是不是一个ACTIVITY只能单个的调试呀?
[/Quote]

不是吧,只要这些Activity之间存在联系,单步调试时可以设置多个断点的,。。。
zhxfeifei 2011-11-08
  • 打赏
  • 举报
回复
是不是一个ACTIVITY只能单个的调试呀?
zhxfeifei 2011-11-08
  • 打赏
  • 举报
回复
没人回答吗?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧