Android 第五課 常用控件的使用方法(TextView、Button、EditView、 ImageView、 ProgressBar、 ProgressDialog等)

總結:見名知意

TextView:

Button:

EditView:

ImageView:

ProgressBar:

ProgressDialog和AlertDialog有些類似,都可以再界面彈出對話框,都能夠屏蔽其他控件的交互能力,用法也類似。

我們還發現ProgressDialog和AlertDialog不用在activity_layout.xml布局文件中寫入,直接在MainActivity代碼中通過按鈕點擊事件調用就行。

詳細步驟:

首先新建項目UIWidgetTest項目。假如活動及其對應布局已經創建完畢。

  • TestView

主要用來在界面顯示一段文本信息。類似于顯示“Hello world!”。

修改activity_main.xml中的代碼,如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.uiwidgettest.MainActivity">    <TextViewandroid:id="@+id/text_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="This is TextView"android:gravity="center"android:textSize="24sp"android:textColor="#00ff00"/>
</LinearLayout>

我們僅僅增加一個TextView控件,還有制定了它的屬性。wrap_content表示由控件內容決定控件大小。android:gravity表示來指定文字的對齊方式。

  • Button

我們先不管外面LinearLayout,修改activity_main.xml文件,來增加一個Button。代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/text_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="This is TextView"android:gravity="center"android:textSize="24sp"android:textColor="#00ff00"/><Buttonandroid:id="@+id/button"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" android:textAllCaps="false"/>//注意這里Button不完全都是大寫,但是運行之后會自動轉換為大寫,我們要改變這種默認。</LinearLayout>

我們可以運行一下。

發現有問題,后面的Button并沒有顯示出來,這是因為外面的LinearLayout通過android:orientation指定了排列方式,默認情況為horizontal,我們需要指定為為vertical。及如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/text_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="This is TextView"android:gravity="center"android:textSize="24sp"android:textColor="#00ff00"/> <Buttonandroid:id="@+id/button"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /></LinearLayout>

接下來,我們在MainActivity中為Button的點擊事件注冊一個監聽器,代碼如下:

package com.example.uiwidgettest;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button = (Button)findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//邏輯語句}});}
}

  • EditText

程序和用戶進行交互,允許用戶在控件里輸入和編輯內容,并可以在程序中對這些內容進行處理。

同樣修改activity_main.xml文件,來增加一個EditText控件,代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/text_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="This is TextView"android:gravity="center"android:textSize="24sp"android:textColor="#00ff00"/><Buttonandroid:id="@+id/button_1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button1"android:textAllCaps="false"/><EditTextandroid:id="@+id/edit_text"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="Type something here"android:maxLines="2"/></LinearLayout>

然后我們可以在輸入框內顯示一些提示性文字,一旦用戶輸入了任何內容,提示性文字又會消失。其實我們只要給EditText指定一個android:hint 屬性就行了。

然后呢,運行之后,我們發現可以在EditView內容輸入無限多內容,界面會不好看,我們又可以通過android:maxLines屬性來解決這個問題。定義好這個屬性我們發現當輸入的文本超過兩行,文本會自動向上翻。

緊接著,我們可以結合EditText與Button完成一些功能,比如通過點擊按鈕來獲取EditText里面輸入的內容。

修改MainActivity里面的內容,代碼如下:

package com.example.uiwidgettest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity {private  EditText editText;//在這里單獨定義@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button = (Button)findViewById(R.id.button);editText = (EditText)findViewById(R.id.edit_text);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.button:String inputText = editText.getText().toString();Toast.makeText(MainActivity.this,inputText,Toast.LENGTH_SHORT).show();break;default:break;}}});}
}

首先通過findViewById()獲取EditText的實例,然后在按鈕的點擊事件里調用EditText的getText()方法來獲取輸入的內容。再調用toString()方法轉化為字符串。最后還是使用Toast顯示出來。

  • ImageView

這是一個用來顯示圖片的控件,我們知道圖片通常放在”drawable”開頭的目錄下,我們發現有很多drawable開頭的目錄,我們選一個drawable-xhdpi的目錄,將選好的圖片img_1.png和img_2.png放入這個目錄中。

修改main_activity,也就是來說添加一個ImageView控件添加代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent">........  <ImageViewandroid:id="@+id/image_view"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/img_1" /></LinearLayout>
我們發現有個android:src屬性,我想大概是圖片的來源吧,但是我們明明把圖片放在了drawable-xhdpi目錄下,為什么卻寫的是drawable目錄呢?

另外,我們可以通過代碼動態地更改ImageView中的圖片,修改MainActivity的代碼,如下:

package com.example.uiwidgettest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends AppCompatActivity {private  EditText editText;//在這里單獨定義 private ImageView imageView;//@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button_1 = (Button)findViewById(R.id.button_1);Button button_2 = (Button)findViewById(R.id.button_2);editText = (EditText)findViewById(R.id.edit_text);imageView = (ImageView)findViewById(R.id.image_view);button_1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.button_1:String inputText = editText.getText().toString();Toast.makeText(MainActivity.this,inputText,Toast.LENGTH_SHORT).show();break;default:break;}}});button_2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.button_2:imageView.setImageResource(R.drawable.img_2);break;default:break;}}});}
}

我們可以再添加一個Button2,來監聽ImageView,點擊Button2時,我們可以從Img_1調轉到Img_2。

這里需要注意,添加Button2,我們需要再寫一個監聽器。在按鈕的監聽事件中,我們通過調用ImageView的setImageResourece()方法將顯示的圖片改成Img_2。

  • ProgessBar

這個用于在界面上顯示一個進度條,表示我們正在加載一些數據,我們可以修改activity_main中的代碼,添加一個ProgessBar,代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent">.......<Buttonandroid:id="@+id/button_2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button2"android:textAllCaps="false"/>........ <ProgressBarandroid:id="@+id/progress_bar"android:layout_width="match_parent"android:layout_height="wrap_content" />

</LinearLayout>
運行完程序之后,我們發現一直有個圓形進度條正在選裝,那么如何讓進度條在加載完數據后消失呢,我們就學習一個新的屬性: Android控件的可見屬性。

可以通過android:visibility進行指定,可選值有3種:visible,invisible和gone。visible是表示控件可見的,這個是默認值。invisible表示控件不可見,但它仍然占據著原來的位置和大小,就是透明狀態。gone則表示控件不僅不可見,而且不占用任何屏幕空間。

我們通過代碼來設置控件的可見性,使用的是setVisibility()方法,可以傳入View.VISIBLE、View.INVISIBLE和View.GONE這3種值,接下來我們嘗試實現,點擊按鈕讓進度條消失,這里我們再添加一個Button3(在activity_main里面添加即可)。

修改MainActivity種的代碼,如下

package com.example.uiwidgettest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.Toast;public class MainActivity extends AppCompatActivity {private  EditText editText;//在這里單獨定義private ImageView imageView;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button_1 = (Button)findViewById(R.id.button_1);Button button_2 = (Button)findViewById(R.id.button_2);Button button_3 = (Button)findViewById(R.id.button_3);editText = (EditText)findViewById(R.id.edit_text);imageView = (ImageView)findViewById(R.id.image_view);progressBar = (ProgressBar)findViewById(R.id.progress_bar);button_1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.button_1:String inputText = editText.getText().toString();Toast.makeText(MainActivity.this,inputText,Toast.LENGTH_SHORT).show();break;default:break;}}});button_2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.button_2:imageView.setImageResource(R.drawable.img_2);break;default:break;}}});button_3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.button_3:if(progressBar.getVisibility() == view.GONE){progressBar.setVisibility(View.VISIBLE);}else{progressBar.setVisibility(View.GONE);}break;default:break;}}});}
}

我們通過getVisibility()來判斷ProgressBar是否可見,如何可見,就隱形,不可見,就顯示出來。這樣我們通過不斷點擊Button3讓進度條在顯示和隱藏來回切換。

另外,我們可以給ProgressBar指定不同樣式,可以是圓形進度條,通過style屬性可以將它指定成水平進度條,修改activity_main.xml的代碼,如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent">..........<Buttonandroid:id="@+id/button_3"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button3"android:textAllCaps="false"/><ProgressBarandroid:id="@+id/progress_bar"android:layout_width="match_parent"android:layout_height="wrap_content"style="?android:attr/progressBarStyleHorizontal"android:max = "100"/></LinearLayout>

在指定為水平進度條后,我們還可以通過android:max屬性給進度條設置一個最大值,然后在代碼中動態的更改進度條的進度。修改MainActivity中的代碼,如下:

package com.example.uiwidgettest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.Toast;public class MainActivity extends AppCompatActivity {private  EditText editText;//在這里單獨定義private ImageView imageView;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button_1 = (Button)findViewById(R.id.button_1);Button button_2 = (Button)findViewById(R.id.button_2);Button button_3 = (Button)findViewById(R.id.button_3);editText = (EditText)findViewById(R.id.edit_text);imageView = (ImageView)findViewById(R.id.image_view);progressBar = (ProgressBar)findViewById(R.id.progress_bar);........button_3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.button_3:int progress = progressBar.getProgress();progress = progress + 10;progressBar.setProgress(progress);break;default:break;}}});}
}

這樣呢,每點一次按鈕,我們都會獲取進度條的當前進度,然后在現有的進度條上加10作為更新后的進度。

ParogressBar還有其他幾種樣式,可以試試。

  • AlertDialog

AlertDialog可以在當前界面彈出一個對話框,這個對話框是位于所有界面元素之上的,能夠屏蔽其他控件的交互能力。

修改MainActivity中的代碼,(我們可以再添加一個Button4)如下:

package com.example.uiwidgettest;import android.content.DialogInterface;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.Toast;public class MainActivity extends AppCompatActivity {private  EditText editText;//在這里單獨定義private ImageView imageView;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button_1 = (Button)findViewById(R.id.button_1);Button button_2 = (Button)findViewById(R.id.button_2);Button button_3 = (Button)findViewById(R.id.button_3);Button button_4 = (Button)findViewById(R.id.button_4);..................button_4.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.button_4:AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);dialog.setTitle("This is Dialog");dialog.setMessage("Something important.");dialog.setCancelable(false);dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {}});dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {}});dialog.show();break;default:break;}}});}
}

首先通過AlertDialog.Builder創建一個AlertDialog的實例,然后可以為這個對話框設置標題,內容,可否用Back鍵關閉對話框等屬性,接下來調用setPostiviteButton()方法為對話框設置確認按鈕的點擊事件,調用setNegativeButton()方法為對話框設置取消按鈕的點擊事件。最后將對話框顯示出來。

  • ProgressDialog

ProgressDialog和AlertDialog有些類似,都可以再界面彈出對話框,都能夠屏蔽其他控件的交互能力,用法也類似。不同的是,ProgressDialog會在對話框中顯示一個進度條,一般用于表示當前操作比較費時,需要等待。修改MainActivity中代碼,如下:

package com.example.uiwidgettest;import android.app.ProgressDialog;import android.content.DialogInterface;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.Toast;public class MainActivity extends AppCompatActivity {private  EditText editText;//在這里單獨定義private ImageView imageView;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button_1 = (Button)findViewById(R.id.button_1);Button button_2 = (Button)findViewById(R.id.button_2);Button button_3 = (Button)findViewById(R.id.button_3);Button button_4 = (Button)findViewById(R.id.button_4);Button button_5 = (Button)findViewById(R.id.button_5);editText = (EditText)findViewById(R.id.edit_text);imageView = (ImageView)findViewById(R.id.image_view);progressBar = (ProgressBar)findViewById(R.id.progress_bar);........button_5.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.button_5:ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);progressDialog.setTitle("This is ProgressDialog!");progressDialog.setMessage("Loading");progressDialog.setCancelable(true);progressDialog.show();break;default:break;}}});}
}

如果在setCancelable()中傳入了false,表示ProgressDialog是不能通過Back鍵取消掉的。程序會陷入死機狀態,ProgressDialog會一直存在。








本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274127.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274127.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274127.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

設計 色彩 構圖 創意_我們可以從時尚的創意方向中學到色彩

設計 色彩 構圖 創意The application of fashion as a form of aesthetic expression is a notion familiar to many. Every day, we curate ourselves with inspiration from rising trends, a perception of our personal preferences, and regards to practicality in the c…

Android 第六課 4種基本布局之LinearLayout和Relativelayout

看完控件&#xff0c;緊接著看布局&#xff0c;布局是可以來放置控件&#xff0c;管理控件的。布局里也可以嵌套布局。我們新建項目UILayoutTest項目&#xff0c;活動名和布局名選擇默認。加入活動及其對應的布局已經創建完成。線性布局(LinearLayout)android:layout_gravity屬…

如何在UI設計中制作完美陰影

重點 (Top highlight)Shadows are everywhere in modern UI Designs. They are one of the most essential part of the UI elements right behind the fill, stroke, and cornder radius. &#x1f609;現代UI設計中到處都有陰影。 它們是UI元素中最重要的部分之一&#xff0c…

微軟2013年校園實習生招聘筆試題及答案

原文&#xff1a; http://www.wangkaimin.com/2013/04/07/%e5%be%ae%e8%bd%af2013%e5%b9%b4%e6%a0%a1%e5%9b%ad%e5%ae%9e%e4%b9%a0%e7%94%9f%e6%8b%9b%e8%81%98%e7%ac%94%e8%af%95%e9%a2%98%e5%8f%8a%e7%ad%94%e6%a1%88/#more-195 1. Which of following calling convension(s)…

Android 第七課 4種基本布局之FrameLayout和百分比布局

FrameLayout&#xff08;幀布局&#xff09;&#xff0c;她沒有方便的定位方式&#xff0c;所有的控件都會默認擺放在布局的左上角。 修改activity_main.xml中的代碼&#xff0c;如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <Frame…

mongodb 群集圖_群集和重疊條形圖

mongodb 群集圖為什么和如何 (Why & How) 1.- Clustered Bar Charts1.- 集群條形圖 AKA: grouped, side-by-side, multiset [bar charts, bar graphs, column charts]AKA &#xff1a;分組&#xff0c;并排&#xff0c;多組[條形圖&#xff0c;條形圖&#xff0c;柱形圖] …

第一次寫python

這是一個在BJDP上學習Coding Kata的時候用到的一個練習&#xff0c;原來打算用Java寫的&#xff0c;但是一想正好是學習的好機會。 就用Python了。第一次&#xff0c;寫的有些復雜。 這個題目是關于購買圖書的打折信息的。 題目來源&#xff1a; http://codingdojo.org/cgi-bin…

Android 第八課 創建自定義控件

常用控件和布局的繼承結構&#xff0c;如下圖&#xff1a; &#xff08;待續。。。。&#xff09; 所有的控件都是直接或間接繼承自View的&#xff0c;所用的所有布局都是直接或間接繼承自ViewGroup的&#xff0c;View是Android中最基本的一種UI組件&#xff0c;它可以在屏幕上…

figma下載_搬到Figma對我意味著什么

figma下載A couple of years ago, amidst the boom of new design and prototyping software, I was pretty reluctant to fight on the Figma/Sketch cold war. I was working on a relatively small design team and, after years helping to design products, well sold on …

解決IE中img.onload失效的方法

解決IE中img.onload失效的方法 - CoffeeCats IT Blog - IT博客http://www.cnitblog.com/CoffeeCat/archive/2008/02/01/39533.htmlFirefox、Google Chrome不存在問題&#xff01;為什么onload沒有被IE調用呢&#xff1f;因為IE會緩存圖片&#xff0c;第2次加載的圖片&#xff0…

Android 第九課 常用控件-------ListView

ListView允許用戶通過手指上下滑動的方式將屏幕外的數據滾動到屏幕內&#xff0c;同時屏幕上原有數據將會滾動出屏幕。 1、ListView簡單用法 如何將ListView將你要顯示的大量內容關聯起來呢&#xff1f;這是個很重要的問題。 1、首先我們必須先將數據提供好&#xff0c;因為你的…

Singleton patterns 單件(創建型模式)

1、模式分類 1.1 從目的來看&#xff1a; ? – 創建型&#xff08;Creational&#xff09;模式&#xff1a;負責對象創建。 ? – 結構型&#xff08;Structural&#xff09;模式&#xff1a;處理類與對象間的組合。 ? – 行為型&#xff08;Behavioral&…

Android 第十一課 SQlite 數據庫存儲

Android 為了讓我們能夠更加方便的管理數據庫&#xff0c;特意提供了一個SQLiteOpenHelper幫助類&#xff0c;通過借助這個類就可以非常簡單的對數據庫進行創建和升級。 SQLiteOpenHelper是一個抽象類&#xff0c;我們要創建一個自己的幫助類去繼承它。SQLiteOpenHelper有兩個抽…

淺析SQL Server 2005中的主動式通知機制

一、引言 在開發多人同時訪問的Web應用程序&#xff08;其實不只這類程序&#xff09;時&#xff0c;開發人員往往會在緩存策略的設計上狠下功夫。這是因為&#xff0c;如果將這種環境下不常變更的數據臨時存放在應用程序服務器或是用戶機器上的話&#xff0c;可以避免頻繁地往…

Android 第十二課 使用LitePal操作數據庫(記得閱讀最后面的注意事項哦)

一、LitePal簡介 1、(新建項目LitePalTest)正式接觸第一個開源庫---LitePalLitePal是一款開源的Android 數據庫框架&#xff0c;它采用了對象關系映射&#xff08;ORM&#xff09;的模式。2、配置LitePal&#xff0c;編輯app/build.gradle文件&#xff0c;在dependencies閉包中…

listview頻繁刷新報錯

在Android編程中使用Adapter時&#xff0c;偶爾會出現如下錯誤&#xff1a;The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI t…

Android 第十三課 SharedPreferences存儲

SharedPreferences是使用鍵值對的方式來存儲數據的。當保存一條數據時&#xff0c;需要給這條數據提供一個對應的鍵&#xff0c;這樣在讀取數據的時候就可以通過這個鍵把相應的值取出來。而且支SharedPreferences還支持多種不同的數據類型存儲&#xff0c;例如&#xff1a;如果…

DSP的Gel作用

轉自&#xff1a;http://blog.csdn.net/azhgul/article/details/6660960最近剛在研究Davinci系&#xff0c;特此MARK下&#xff0c;以資后續學習之用。 DSP的Gel作用 1 GEL文件基本作用 當CCSStudio啟動時&#xff0c;GEL文件加載到PC機的內存中&#xff0c;如果定義了StartUp(…

解決關于登錄校園網顯示不在IP段的問題方案(要看注意事項哦!)

有時&#xff0c;登錄校園網&#xff0c;賬號和密碼都顯示正確&#xff0c;但是卻顯示出“賬號只能在指定IP段登錄”的問題。 那我們就提供了一個解決方案&#xff1a; 使用WinR,并在輸入框&#xff0c;輸入cmd命令&#xff1a;&#xff08;如下&#xff09;接著輸入&#xff1…

jquery插件編寫

jQuery為開發插件提拱了兩個方法&#xff0c;分別是&#xff1a; jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object); 為擴展jQuery類本身.為類添加新的方法。可以理解為添加靜態方法。是全局的&#xff08;位于jQuery命名空間內部的函數&#xff09;…