基于Android的短信应用开发(一)——界面设计开发

本文介绍了基于Android开发短信应用时的界面设计,主要涉及MainActivity.java、MessageListAdapter.java、AndroidManifest.xml及两个布局文件。在自定义列表项list_item.xml时,采用了RelativeLayout布局,但在处理长短信内容时遇到问题。通过convertView = mInflater.inflate(R.layout.list_item, null)将list_item.xml关联到ListView。同时,文章指出列表项右上角显示的项数而非消息数,将在后续处理中解决。总结了自定义ListView列表项格式和创建适配器Adapter的方法。" 136736714,1311471,华为OD机试:猴子吃桃问题,"['算法', '编程挑战', '华为', 'javascript']
摘要由CSDN通过智能技术生成
刚刚接触Android开发,最近自己在上手开发一个手机短信应用,由于是从头开始开发,首先还是得设计实现界面,初步效果如图:

程序代码如下

1.MainActivity.java

package com.example.mymessageproject;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {
    private ListView messageListView;
    private ArrayList messageList = new ArrayList();
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        messageListView = (ListView)this.findViewById(R.id.listView1);
        
        MessageListAdapter adapter = new MessageListAdapter(this);
        adapter.init();
        messageListView.setAdapter(adapter);
        adapter.notifyDataSetChanged();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

2.适配器类MessageListAdapter.java

package com.example.mymessageproject;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MessageListAdapter extends BaseAdapter{
    private LayoutInflater mInflater;  
    private Context mContext = null;  
    
    
    private ArrayList<String> aDataList = new ArrayList<String>();
        
    
    public void init(){
        for(int i=1;i<=10;i++){
        aDataList.add("发件人"+i);
        //return;
        }
    }
    
    
    public MessageListAdapter(Context context) {  
        mContext = context;  
        mInflater = LayoutInflater.from(mContext);  
    }  
    public Object getItem(int arg0) {  
        // TODO Auto-generated method stub  
        return arg0;  
    }  
    public long getItemId(int position) {  
        // TODO Auto-generated method stub  
        return position;  
    }  
    public int getCount() {  
        // TODO Auto-generated method stub  
        return aDataList.size();  
    }  
    public View getView(int position, View convertView,  
            android.view.ViewGroup parent) {  
        final ImageView indexImage;  
        final TextView titleText;
        final TextView descText;
        final TextView countText;
        final TextView timeText;
        if (convertView == null) {  
            // 和item_custom.xml脚本关联  
            convertView = mInflater.inflate(R.layout.list_item, null);  
        }  
        indexImage = (ImageView)convertView.findViewById(R.id.index_image);
        titleText = (TextView)convertView.findViewById(R.id.titleTextView);
        descText = (TextView)convertView.findViewById(R.id.descTextView);
        countText = (TextView)convertView.findViewById(R.id.countTextView);
        timeText = (TextView)convertView.findViewById(R.id.timeTextView);
        
        String strText = aDataList.get(position);
        // 设置item中4个TextView的文本  
        titleText.setText(strText);
        
        descText.setText("消息
这是一个自己开发Android 直接发送短信方法附上代码,Android短信功能,包括了对内容合法性的验证,发送完成弹出提示。自己开发的直接发送短信的方法:   private void sendSMS(String telNo,String smsStr,View v){    PendingIntent pi=    PendingIntent.getActivity(this, 0, new Intent(this,Sample_11_1.class), 0);    SmsManager sms=SmsManager.getDefault();    sms.sendTextMessage(telNo, null, smsStr, pi, null);    //短信发送成功给予提示    Toast.makeText(    Sample_11_1.this, //上下文    "恭喜你,短信发送成功!", //提示内容    5000 //信息显示时间    ).show();    v.setEnabled(true);//短信发送完成后恢复发送按钮的可用状态   }   对手机号码和短信内容的验证部分:   //获取输入的电话号码   EditText etTel=(EditText)findViewById(R.id.EditText02);   String telStr=etTel.getText().toString();   //获取输入的短信内容   EditText etSms=(EditText)findViewById(R.id.EditText01);   String smsStr=etSms.getText().toString();   //判断号码字符串是否合法   if(PhoneNumberUtils.isGlobalPhoneNumber(telStr)){//合法则发送短信    v.setEnabled(false);//短信发送完成前将发送按钮设置为不可用    sendSMS(telStr,smsStr,v);   }   else{//不合法则提示    Toast.makeText(    Sample_11_1.this, //上下文    "电话号码不符合格式!!!", //提示内容    5000//信息显示时间    ).show();   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值