首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

匿名内部类的学识

2012-10-25 
匿名内部类的知识package sun.smsimport java.util.Listimport android.app.Activityimport android.os

匿名内部类的知识

package sun.sms;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.telephony.SmsManager;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class SmsActivity extends Activity {    /** Called when the activity is first created. */private Button sendButton ; private EditText editText1 ; private EditText editText2;     @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                Button sendButton = (Button)this.findViewById(R.id.sendbutton);        sendButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {EditText editText1 = (EditText)findViewById(R.id.phonetext);EditText editText2 = (EditText)findViewById(R.id.contenttext);        String mobile = editText1.getText().toString();String content = editText2.getText().toString();SmsManager smsManager = SmsManager.getDefault();List<String> texts =  smsManager.divideMessage(content);for(String text:texts){smsManager.sendTextMessage(mobile, null, text, null, null);}Toast.makeText(SmsActivity.this, "发送完成", 1).show();}});            }}

??

这些都是java 的基础知识,之前不很明白EditText editText1 = (EditText)findViewById(R.id.phonetext);
findViewById是外部类SmsActivity 的方法,为什么这里可以直接用findViewById,原因是因为匿名内部类不存在findViewById方法,所以他会寻找外部类SmsActivity 的findViewById。由此可见,当匿名内部类存在findViewById同名方法时,就不能省略SmsActivity .this .findViewById的引用了.

热点排行