读书人

匿名内部类的学识

发布时间: 2012-10-25 10:58:57 作者: rapoo

匿名内部类的知识

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的引用了.

读书人网 >编程

热点推荐