當前位置:
首頁 >
androidstuido_schooltest_7_storage
發布時間:2025/3/21
32
豆豆
生活随笔
收集整理的這篇文章主要介紹了
androidstuido_schooltest_7_storage
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- MainActivity.java
- activity_main.xml
- SPTestActivity.java
- activity_sptest.xml
- InnerFileActivity.java
- activity_inner_file.xml
- OfActivity.java
- activity_of.xml
- DbActivity.java
- activity_db.xml
- DBHelper.java
- NetworkActivity.java
- activity_network.xml
MainActivity.java
package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity; import android.content.Intent; 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=findViewById(R.id.btn_sp);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,SPTestActivity.class));}});Button btn_inner=findViewById(R.id.btn_file_inner);btn_inner.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,InnerFileActivity.class));}});Button btn_of=findViewById(R.id.btn_file_OF);btn_of.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,OfActivity.class));}});Button btn_DB=findViewById(R.id.btn_DB);btn_DB.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,DbActivity.class));}});} }activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:text="數據存儲方式"android:textColor="#ff0000"android:textSize="20sp" /><Buttonandroid:id="@+id/btn_sp"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="onClickSP"android:text="SharedPreference存儲" /><Buttonandroid:id="@+id/btn_file_inner"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="onClickIF"android:text="內部文件存儲" /><Buttonandroid:id="@+id/btn_file_OF"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="外部文件存儲" /><Buttonandroid:id="@+id/btn_DB"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="數據庫存儲" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="onClickNW"android:text="網絡存儲存儲" /></LinearLayout>SPTestActivity.java
package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast;public class SPTestActivity extends AppCompatActivity {EditText et_sp_key;EditText et_sp_value;SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sptest);sp=this.getSharedPreferences("igeek", Context.MODE_PRIVATE);et_sp_key=findViewById(R.id.et_sp_key);et_sp_value=findViewById(R.id.et_sp_value);Button btn_save=findViewById(R.id.btn_save);Button btn_read=findViewById(R.id.btn_read);btn_save.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//獲取key和valueString key=et_sp_key.getText().toString();String value=et_sp_value.getText().toString();//獲取editorSharedPreferences.Editor editor=sp.edit();editor.putString(key,value).commit();}});btn_read.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String key=et_sp_key.getText().toString();String value=sp.getString(key,"no data");Toast.makeText(SPTestActivity.this,value,Toast.LENGTH_LONG).show();}});}}activity_sptest.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><EditTextandroid:id="@+id/et_sp_key"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="存儲的key" /><EditTextandroid:id="@+id/et_sp_value"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="存儲的value" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><Buttonandroid:id="@+id/btn_save"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="save"android:text="保 存" /><Buttonandroid:id="@+id/btn_read"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="read"android:text="讀 取" /></LinearLayout></LinearLayout>InnerFileActivity.java
package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.content.Context; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast;import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream;public class InnerFileActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_inner_file);}public void save(View view){//1.獲取assets目錄AssetManager manager=getAssets();InputStream Is=null;FileOutputStream fileOutputStream=null;//2.獲取文件try {Is=manager.open("logo.png");//3.設置保存路徑fileOutputStream=openFileOutput("logo.png", Context.MODE_PRIVATE);//4.保存數據byte [] buffer=new byte[1024];int len=-1;while ((len=Is.read(buffer))!=-1){fileOutputStream.write(buffer,0,len);}Is.close();fileOutputStream.close();Toast.makeText(InnerFileActivity.this,"保存完成",Toast.LENGTH_LONG).show();} catch (IOException e) {e.printStackTrace();}}public void read(View view){//1.獲取文件路徑String dirPath=getFilesDir().getAbsolutePath();String filePath=dirPath+"/logo.png";//2.讀取加載圖片文件,得到Bitmap對象Bitmap bitmap= BitmapFactory.decodeFile(filePath);//3.把圖片加載到image控件ImageView imageView=findViewById(R.id.iv_if);imageView.setImageBitmap(bitmap);} }activity_inner_file.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="5dp"android:text="1. 將asserts下的logo.png保存到手機內部\n2. 讀取手機內部圖片文件顯示"android:textColor="#ff0000"android:textSize="15sp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="save"android:text="保 存" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="read"android:text="讀 取" /></LinearLayout><ImageViewandroid:id="@+id/iv_if"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/ic_launcher" /></LinearLayout>OfActivity.java
package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.os.Environment; import android.view.View; import android.widget.EditText; import android.widget.Toast;import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException;public class OfActivity extends AppCompatActivity {private EditText et_of_name;private EditText et_of_content;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_of);et_of_name = findViewById(R.id.et_of_name);et_of_content = findViewById(R.id.et_of_content);}//保存public void save(View view) throws IOException {//1.判斷sd卡是否掛載if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//2.讀取頁面輸入的內容String filename = et_of_name.getText().toString();String content = et_of_content.getText().toString();//3.獲取sd卡路徑String filespath = getExternalFilesDir(null).getAbsolutePath();String filepath = filespath+"/"+filename;//4.輸出數據FileOutputStream fos = new FileOutputStream(filepath);fos.write(content.getBytes("utf-8"));//5.提示Toast.makeText(this, "保存完成", Toast.LENGTH_SHORT).show();}else{Toast.makeText(this, "SD卡沒有掛載", Toast.LENGTH_SHORT).show();}}//讀取public void read(View view) throws IOException {//1.判斷sd卡是否掛載if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){String filename = et_of_name.getText().toString();//2.獲取sd卡路徑String filespath = getExternalFilesDir(null).getAbsolutePath();String filepath = filespath+"/"+filename;//3.讀取內容FileInputStream fis = new FileInputStream(filepath);//讀取數據,轉換成stringByteArrayOutputStream baos = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = -1;while((len=fis.read(buffer))!=-1){baos.write(buffer,0,len);}String content = baos.toString();//4.顯示et_of_content.setText(content);}else{Toast.makeText(this, "SD卡沒有掛載", Toast.LENGTH_SHORT).show();}} }activity_of.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><EditTextandroid:id="@+id/et_of_name"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="存儲的文件名" /><EditTextandroid:id="@+id/et_of_content"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="存儲的文件內容" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="save"android:text="保 存" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="read"android:text="讀 取" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="save2"android:text="保 存2" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="read2"android:text="讀 取2" /></LinearLayout></LinearLayout>DbActivity.java
package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Toast;public class DbActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_db);}//建庫:public void testCreateDB(View view){DBHelper dbHelper=new DBHelper(this,1);SQLiteDatabase database =dbHelper.getReadableDatabase();Toast.makeText(this, "創建數據庫成功", Toast.LENGTH_LONG).show();}/** 更新庫*/public void testUpdateDB(View v) {DBHelper dbHelper = new DBHelper(this, 2);//獲取連接SQLiteDatabase database = dbHelper.getReadableDatabase();Toast.makeText(this, "更新數據庫", Toast.LENGTH_LONG).show();}/** 添加記錄*/public void testInsert(View v) {//1. 得到連接DBHelper dbHelper = new DBHelper(this, 2);SQLiteDatabase database = dbHelper.getReadableDatabase();//2. 執行insert insert into person(name, age) values('Tom', 12)ContentValues values = new ContentValues();values.put("name", "Tom");values.put("age", 20);long id = database.insert("person", null, values);//3. 關閉database.close();//4. 提示Toast.makeText(this, "id="+id, Toast.LENGTH_LONG).show();}/** 更新*/public void testUpdate(View v) {DBHelper dbHelper = new DBHelper(this, 2);SQLiteDatabase database = dbHelper.getReadableDatabase();//執行update update person set name=Jack, age=13 where _id=4ContentValues values = new ContentValues();values.put("name", "jack");values.put("age", 13);int updateCount = database.update("person", values , "_id=?", new String[]{"4"});database.close();Toast.makeText(this, "updateCount="+updateCount, Toast.LENGTH_LONG).show();}/** 刪除*/public void testDelete(View v) {// 1. 得到連接DBHelper dbHelper = new DBHelper(this, 2);SQLiteDatabase database = dbHelper.getReadableDatabase();// 2. 執行delete delete from person where _id=2int deleteCount = database.delete("person", "_id=2", null);// 3. 關閉database.close();// 4. 提示Toast.makeText(this, "deleteCount=" + deleteCount, Toast.LENGTH_LONG).show();}/** 查詢*/public void testQuery(View v) {// 1. 得到連接DBHelper dbHelper = new DBHelper(this, 2);SQLiteDatabase database = dbHelper.getReadableDatabase();// 2. 執行query select * from personCursor cursor = database.query("person", null, null, null, null, null, null);//cursor = database.query("person", null, "_id=?", new String[]{"3"}, null, null, null);//得到匹配的總記錄數int count = cursor.getCount();//取出cursor中所有的數據while(cursor.moveToNext()) {//_idint id = cursor.getInt(0);//nameString name = cursor.getString(1);//ageint age = cursor.getInt(cursor.getColumnIndex("age"));Log.e("TAG", id+"-"+name+"-"+age);}// 3. 關閉cursor.close();database.close();// 4. 提示Toast.makeText(this, "count=" + count, Toast.LENGTH_LONG).show();}}activity_db.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testCreateDB"android:text="Create DB" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testUpdateDB"android:text="Update DB" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testInsert"android:text="Insert" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testUpdate"android:text="Update" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testDelete"android:text="Delete" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testQuery"android:text="query" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testTransaction"android:text="Test Transaction" /></LinearLayout>DBHelper.java
package com.kanxue.school_test_1;import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log;import androidx.annotation.Nullable;public class DBHelper extends SQLiteOpenHelper {public DBHelper(@Nullable Context context, int version) {super(context, "igeek.db", null, version);}@Overridepublic void onCreate(SQLiteDatabase db) {Log.e("DBHelper","DBHelper onCreate");String sql = "create table person(_id integer primary key autoincrement,name varchar,age int)";db.execSQL(sql);//插入數據db.execSQL("insert into person (name,age) values ('tom1',11)");db.execSQL("insert into person (name,age) values ('tom2',12)");db.execSQL("insert into person (name,age) values ('tom3',13)");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {Log.e("DBHelper","DBHelper onUpgrade");} }NetworkActivity.java
package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.app.ProgressDialog; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText;import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL;public class NetworkActivity extends AppCompatActivity {EditText et_url;EditText et_network_result;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_network);et_url=findViewById(R.id.et_network_url);et_network_result=findViewById(R.id.et_network_result);}public void testConnectionPost(View view){//1.顯示進度條final ProgressDialog dialog = ProgressDialog.show(this,null,"正在請求中...");//2.啟動分線程new Thread(){@Overridepublic void run() {try{//3.獲取網絡請求地址String path = et_url.getText().toString();//4.創建URL對象URL url = new URL(path);//5.打開鏈接HttpURLConnection connection = (HttpURLConnection) url.openConnection();//6.設置請求方式、連接超時,讀取超時connection.setRequestMethod("POST");connection.setConnectTimeout(5000);connection.setReadTimeout(6000);//7.連接服務器connection.connect();//獲取請求的輸出流,添加post請求參數OutputStream os = connection.getOutputStream();String data = "name=jack&age=20";os.write(data.getBytes("utf-8"));//8.發送請求,獲取返回代碼int responseCode = connection.getResponseCode();if(responseCode == 200){//獲取內容InputStream is = connection.getInputStream();//讀取數據,轉換成stringByteArrayOutputStream baos = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = -1;while((len=is.read(buffer))!=-1){baos.write(buffer,0,len);}final String content = baos.toString();baos.close();is.close();//9.在主線程中更新數據,移除dialogrunOnUiThread(new Runnable() {@Overridepublic void run() {et_network_result.setText(content);dialog.dismiss();}});}}catch(Exception e){e.printStackTrace();dialog.dismiss();}}}.start();}public void testConnectionGet(View view){//1.顯示進度條final ProgressDialog dialog = ProgressDialog.show(this,null,"正在請求中...");//2.啟動分線程:new Thread(new Runnable() {@Overridepublic void run() {String path=et_url.getText().toString();try {URL url=new URL(path);//打開鏈接HttpURLConnection httpURLConnection =(HttpURLConnection)url.openConnection();//請求方式httpURLConnection.setRequestMethod("GET");httpURLConnection.setConnectTimeout(5000);httpURLConnection.setReadTimeout(5000);//連接httpURLConnection.connect();int responseCode=httpURLConnection.getResponseCode();if(responseCode==200){//請求成功InputStream is=httpURLConnection.getInputStream();ByteArrayOutputStream baos=new ByteArrayOutputStream();byte [] buffer= new byte[1024];int len = -1;while((len=is.read(buffer))!=-1){baos.write(buffer,0,len);}final String content = baos.toString();baos.close();is.close();runOnUiThread(new Runnable() {@Overridepublic void run() {et_network_result.setText(content);dialog.dismiss();}});}} catch (Exception e) {dialog.dismiss();e.printStackTrace();}}}).start();} }activity_network.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical" ><EditTextandroid:id="@+id/et_network_url"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="textUri"android:text="http://10.141.6.88:8080/android_web_war_exploded/tas" ></EditText><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="1. 測試HttpUrlConnection"android:textSize="20dp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testConnectionGet"android:text="GET請求" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testConnectionPost"android:text="POST請求" /></LinearLayout><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="2. 測試HttpClient"android:textSize="20dp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testClientGet"android:text="GET請求" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testClientPost"android:text="POST請求" /></LinearLayout><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="3. 測試Volley框架"android:textSize="20dp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testVolleyGet"android:text="GET請求" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testVolleyPost"android:text="POST請求" /></LinearLayout><EditTextandroid:id="@+id/et_network_result"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:hint="用來顯示網絡請求返回的結果數據" ></EditText></LinearLayout>總結
以上是生活随笔為你收集整理的androidstuido_schooltest_7_storage的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: androidstuido_school
- 下一篇: androidstuido_school