android学习中关于Textview,Button,EditText,连接的设置,Intent,Activity不同状态等的一系列基础知识点

通过这两天的学习,总结出了一些琐碎的小知识,但却是不可或缺的,贴出来以便以后用到,希望也会给那些个初学者带来便易的理解。琐碎的知识点以后还会出现,希望自己能在这种积累中,在android软件的开发这条路上走得更好!!

打开两个模拟器的命令:
进入环境目录:android-sdk-windows/tools/,命令:emulator -data foo

1.当Activity处于onResume(),onStop(),onDestroy()状态时Activity会被Android系统杀死,再次执行时调用onCreate()原来的东西会丢掉。这时,调用onSaveInstanceState()方法,其中的Bundle保存原来的信息。
 protected void onSaveInstanceState(Bundle outState)
{
 super.onSaveInstanceStat(outState);
}

======================================================================================================
2.在文件夹assets中的文件android工具都会把他打包进去,而res文件夹中的文件只有在使用的时候才会打包。
======================================================================================================

3.TextView控件的使用:
    a.创建Textview对象  b.设置文本 c.使用setContentView()将控件加载到Activity上。
  ***********************************
    TextView tv=new TextView(this); 
    tv.setText("你好"); 
    setContentView(tv); 
  ***********************************
方法二:修改.xml文件
    在.xml文件中添加TextView组件
  ******************************************
    <TextView       
   android:id="@+id/textview01"          
   android:layout_width="wrap_content"
   android:layout_height="fill_parent"   
   android:text="你好"                
    ></TextView>                          
  ******************************************
 TextView属性:
  1.a:设置字体大小用sp作为单元
    b: 设置宽度和高度时用dp作为单元
例如:
  ********************************
  * 在布局文件.xml中的TextView添加*
  * android:textSize="20sp"      *
  ********************************
  2.设置颜色
   a.改变TextView字体颜色
   ********************************
   * 在布局文件.xml中的TextView添加*
   * android:textColor="#00FF00"  *
   ********************************
   b.改变部分字体颜色
   首先, 在.xml中的TextView中添加id
   ******************************
   *android:id="@+id/textview01"*
   *android:text="@string/hello"*
   ******************************
   再次,
   **************************************************************************************************************
   *   TextView textView=(TextView)                    *
   *   findViewById(R.id.textview01);                    *    

   *   textView.setText(Html.fromHtml("欢迎大家收看<font color=blue>《android开发从零开始》</font>系列课程"));                                                                                                         *************************************************************************************************************
   c.控制整个字体的颜色
   ***********************************************************************************************
   * TextView textView=(TextView)                     *
   * findViewById(R.id.textview01);                     *
   * String str="欢迎大家收看《abdroid开发从零开始》系列课程。感谢大家的支持。";     *
   * SpannableStringBuilder style=new SpannableStringBuilder(str);             *
   * style.setSpan(new ForegroundColorSpan(Color.RED),0,6,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   *
   * style.setSpan(new ForegroundColorSpan(Color.GREEN),6,21,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);*  
   * style.setSpan(new ForegroundColorSpan(Color.BLUE),21,34,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);*
   * textView.setText(style);                         *
   ***********************************************************************************************
  3.设置超链
   ###autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)
  在.xml文件中添加:
   **********************************************************************************************************************
   * android:autoLink="phone"                      *
   * android:text="欢迎大家收看《abdroid开发 从零开始》系列课程。感谢大家的支持。\n我的博客:http://blog.csdn.net//coolsz\n*
   * 我的电话:18736566"                                                                                         *    **********************************************************************************************************************                                                                                                                  ###跑马灯效果
   android:ellipsize设置当文字过长时,该控件该如何显示。有如下设置:
   "start"--省略号显示在开头;
   "end"--省略号显示在结尾;
   "middle"--省略号显示在中间;
   "marquee"--一跑马灯方式显示(动画横向移动);

   android:marqueeRepeaLimit在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。
   android:focusablelnTouchMode:是否在触摸模式下获得焦点。
   android:focusable控件是否能够获取焦点
  在.xml文件中添加:
  *****************************************************************************
  *android:singleLine="true"//设置为单行           *
  *android:focusable="true"//是否能够获取焦点          *
  *android:ellipsize="marquee"            *
  *android:marqueeRepeatLimit="marquee_forever"//设置滚动次数为无限次          *
  *android:focusableInTouchMode="true"//是否在触摸模式下获得焦点(控制字幕的滚动)*
  ******************************************************************************
  4.EditText的使用:(EditText是TextView的子类TextView的属性EditText也可以使用)
   添加:
   **************************************
   *<EditText    *
   *android:layout_width="fill_parent"  *
   *android:layout_height="wrap_content"*
   */>                                  *
   **************************************
  其中,移除聚焦的方法是:设置两个EditText,将第一个的宽和高都设置为“0”,这样就可以将第一个隐藏,变相的移除了聚焦。
  属性:
   a.限制输入的字符个数:
     android:maxLength="11"
   b.设置多行文本框,默认情况为多行,若想为单行输入则:
     android:singleLine="true"
   c.限制EditText输入的信息:
     android:inputType="number"
   d.设置提示信息:
     android:hint="我是EditText"(编辑框中为灰色字体,添加内容后灰色字体消失)
   e.在EditText中显示图片:
     adroid:drawableLift="@drawable/title"(将截取的图片(title.jpg)放置在drawable-mdpi文件夹中)
   f.设置圆角:
     android:background="@drawable/sharp"
     { 首先在drawable-mdpi文件夹中添加sharp.xml文档
       *******************************************************************
       *<?xml version="1.0" encoding="utf-8"?>     *
       *<sharp xmlns:android="http://schemas.android.com/apk/res/android"*
       *android:sharp="rectangle"       *
       *<!-- 填充的颜色-->       *
       *<solid android:color="#FFFFFF"/>     * 
       *<!-- 设置四个角的角度为弧形 -->      *
       *<!-- android:radius 弧形的半径-->     *
       *<corners android:radius="7dip"/>     *
       *</sharp>        *
       *******************************************************************    
     }
========================================================================================================================
Button控件的使用:
  首先,在.xml文件夹中添加Button组件
   **************************************
   *<Button    *
   *android:id="@+id/btn1"  *
   *android:layout_width="wrap_content" *
   *android:layout_height="wrap_content"*
   *android:text="点我"   *
   */>                 *
   **************************************
  结果出现“点我”按钮,但是单击后没有时间出现,下面给Button按钮添加单击事件:
   a.在MainActivity文件中声明全局变量:
     private Button btn1=null;
   b.查找变量:
     btn1=(Button)findViewById(R.id.btn1);
   c.添加监听事件:
     btn1.setOnClickListener(new OnClickListener()
     public void OnClick(View v)
     {
      Toast.makeText(MainActivity.this,"你点击了按钮",Toast.LENGTH_LONG).show();
     });
========================================================================================================================
Intent的使用:
 1.拨打电话:
   Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+telPhone));
   在清单文件中的<applicaton/>外面添加使用权限:
   <uses-permission
       android:name="android.permission.CALL_PHONE"
   />
   在.java文件中添加:
   ***********************************************************
   * private OnClickListener listener=new OnClickListener(){ *
   * public void onClick(View v) {                        *
   *  Intent intent=new Intent();       *
   *  intent.setAction(Intent.ACTION_CALL);       *
   *  intent.setData(Uri.parse("tel:18736566127"));*
   *  startActivity(intent);        *
   * }           *
   *};            * 
   ***********************************************************
 2.发送短息:
   Intent intent=new
   Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:5554"));
   intent.putExtra("sms_body","Hello");
       startrActivity(intent);
   在清单文件中的<applicaton/>外面添加使用权限:
   <uses-permission
       android:name="android.permission.SEND_SMS"
   />

 3.启动新的Activity:
   a.
   添加一个新的SecondActivity和一个新的布局文件second.xml
   **********************************************************
   *    public class SecondActivity extends Activity {     *
   *     protected void onCreate(Bundle savedInstanceState) {*
   *       super.onCreate(savedInstanceState);     *
   *       setContentView(R.layout.second);      *
   *    }          *
   * }           *
   **********************************************************
   *<TextView            *
   *android:layout_width="fill_parent"        *
   *android:layout_height="wrap_content"       *
   *android:text="second"        *
   */>           *
   *<Button          *
   *android:id="@+id/secondbtn"        *
   *android:layout_width="wrap_content"       *
   *android:layout_height="wrap_content"      *
   *android:text="second"        *
   */>           *
   **********************************************************
   在MainActivity通过Intent来启动SecondActivity需求:
   **********************************************************************
   *public void onCreate(Bundle savedInstanceState) {   *
   *     super.onCreate(savedInstanceState);    *
   *     setContentView(R.layout.main);     *
   *     btn=(Button)findViewById(R.id.btn);    *
   *     btn.setOnClickListener(Listener);    *
   *     }        *
   *private OnClickListener Listener=new OnClickListener() {  *
   *  public void onClick(View v) {     *
   *  Intent intent=new Intent();    *
   *  intent.setClass(MainActivity.this, SecondActivity.class);*
   *  startActivity(intent);     *
   *  }       *
  *     };       *
   *}         *
  **********************************************************************
 完成以上步骤后运行会有错误出现,原因是没有在AndroidManifest.xml文件中注册SecondActivity。
  *****************************************************************************************
  *<activity android:name=".SecondActivity"        *
  *                android:label="@string/app_name">    //""内的内容是默认的,也可以自行添加*
  *        </activity>                  *
  *****************************************************************************************
  b.
   实现参数的传递到第二个Activity:
     首先,在.xml文件中的TextView中添加
       *****************************
       *android:id="@+id/secondTxt"*
       *****************************
     其次,在SecondActivity中添加
     *******************************************************
     *protected void onCreate(Bundle savedInstanceState) { *
     * super.onCreate(savedInstanceState);     *
     *   setContentView(R.layout.second);     *
     *   Intent intent=getIntent();      *
     *   Bundle bundle=intent.getExtras();     *
     *   String str=bundle.getString("str");     *
     *   secondTxt=(TextView)findViewById(R.id.secondTxt); *
     *   secondTxt.setText(str);      *
     * }         *
     *******************************************************
  在MainActivity中添加:
   ***********************************************************
   *intent.setClass(MainActivity.this, SecondActivity.class);*
   *intent.putExtra("str", "Intent Demo");       *
   *startActivity(intent);                *
   ***********************************************************
  c.如何接受第二个类返回的一个结果:
   在MainActivity中添加:
    声明变量:
        private final static int REQUEST_CODE=1;
   *********************************************************************************************
   *protected void onActivityResult(int requestCode, int resultCode, Intent data) {        *
   * if(requestCode==REQUEST_CODE)              *
   *  {                *
   *   if(resultCode==SecondActivity.RESULT_CODE)          *
   *   {               *
   *    Bundle bundle=data.getExtras();           *
   *    String str=bundle.getString("back");          *
   *    Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();*
   *   }               *
   *  }                *  
   *********************************************************************************************
   在SecondActivity中添加:
   声明变量:
       public final static int  RESULT_CODE=1;
       private Button seconButton;
   ************************************************************   
   *seconButton=(Button)findViewById(R.id.secondbtn);       *
   *     seconButton.setOnClickListener(listener);       *
   * }            *
   * private OnClickListener listener=new OnClickListener()*
   * {            * finish()每一个活动程序都会对应一个窗体,当有两个窗体时,由A
   *             * 窗体调用出B窗体,再由窗体B回到窗体A,可以在B的活动程序上采用
   *  public void onClick(View arg0) {       * finish()方法关掉活动B,同时也不再显示B窗口。
   *   Intent intent=new Intent();       *
   *   intent.putExtra("back", "Back Data"); * isfinish()来判断是否已采用finish()方法结束。在onPause()时
   *   setResult(RESULT_CODE,intent);       *最有机会采用isfinish()方法来判断是否要保持目前应用程序状态
   *   finish();         *系统内存不足时
   *  }            *
   *  系统内存不足时会调用onLowMemory()方法,让系统释放更多的内存
   * };            *
   ************************************************************
=========================================================================================================================
Activity的生命周期:
   void onCreate(Bundle savedInstanceState)
   void onStart()    //开始
   void onRestart()  //同时启动onstart()事件,将活动程序再度队列到就绪状态
   void onResume()  //交给中央处理器处理
   void onPause()   //就绪
   void onStop()    //停止
   void onDestory() //结束
=========================================================================================================================
视图的可视性:
 Visible:可视的,设置初始值
 Invisible:不可视的,但视图仍然存在
        Gone:视图已不存在

=========================================================================================================================

以下是一些拾贝:

1.ScrollView布局中滚动条的方向属性是scrollbars。如:android:scrollbas="vertical"
2.LinearLayout布局中要指明方向orientation。如:android:orientation="horizontal"
3.控制与父窗体间距的属性layout_marginLeft。如:android:layout_mardinLeft="10dp"
4.EditText布局中自己位置的属性gravity。如:android:gravity="top"
提示信息属性为hint。如:android:bint="姓名"
指定数值输入的属性是phoneNumber。如:android:phoneNumber="true"
5.与父窗体左边对齐用alignParentLeft。如:android:alignParentLeft="true"
6.在一个对话框中水平居中属性为centerHorizontal.如:android:layout_centerHorizontal="true"
7.添加头像时用到的方法是setImageResource(images[]),参数是一个图片的id。setImageResource的作用就是将此图片设置为绘图内容。
8.设置一个对话框要用到类alertDialog,此类有三种构造方法:                                                                                                                                                                               a.AlertDialog(Context context){};
b.AlertDialog(Context context,int theme){};
c.AlertDialog(Context context,Boolean cancelable,DialogInterface.OnCancelListener cancelListener){}.
9.设置一个按钮用类ImageButton,他可以显示按钮的信息,也就是不用设置text就可以将按钮名称设置上。
public AlertDialog.Builder setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener)
10.对于字符串变量来说,“==”运算符用于比较两个变量本身的值,即两个对象在内存中的首地址;“equals()”方法比较的是两个字符串中所包含的内容是否相同。
对于非字符串来说,“==”和“equals()”方法都用来比较其所指对象在堆内存中的首地址。
11.为对话框设置标题用AlertDialog.Builter类的方法setTitle(CharSequence title)  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值