Android開發_記事本(1)
一些知識
Textview
TextView中有下述幾個屬性:
- id:為TextView設置一個組件id,根據id,我們可以在Java代碼中通過findViewById()的方法獲取到該對象,然后進行相關屬性的設置,又或者使用RelativeLayout時,參考組件用的也是id!
- layout_width:組件的寬度,一般寫:wrap_content或者match_parent(fill_parent),前者是控件顯示的內容多大,控件就多大,而后者會填滿該控件所在的父容器;當然也可以設置成特定的大小,比如我這里為了顯示效果,設置成了200dp。
- layout_height:組件的高度,內容同上。
- gravity:設置控件中內容的對齊方向,TextView中是文字,ImageView中是圖片等等。
- text:設置顯示的文本內容,一般我們是把字符串寫到string.xml文件中,然后通過@String/xxx取得對應的字符串內容的,這里為了方便我直接就寫到""里,不建議這樣寫!!!
- textColor:設置字體顏色,同上,通過colors.xml資源來引用,別直接這樣寫!
- textStyle:設置字體風格,三個可選值:normal(無效果),bold(加粗),italic(斜體)
- textSize:字體大小,單位一般是用sp!
- background:控件的背景顏色,可以理解為填充整個控件的顏色,可以是圖片哦!
startActivityForResult
大致可以理解為獲取Activity的結果
Intent
intent相當于一個信道,putExtra相當于向里面傳送一個名為參數一,內容為參數二的信息,接收方通過參數一相同的名稱來接受參數二內容
- startActivity(Intent)/startActivityForResult(Intent):來啟動一個Activity
- startService(Intent)/bindService(Intent):來啟動一個Service
- sendBroadcast:發送廣播到指定BroadcastReceiver
.顯式Intent使用示例:
這個用得很多,直接就上例子了:
例子1:點擊按鈕返回Home界面: 運行效果圖:

核心代碼:
Intent it = new Intent();
it.setAction(Intent.ACTION_MAIN);
it.addCategory(Intent.CATEGORY_HOME);
startActivity(it);
例子2:點擊按鈕打開百度頁面: 運行效果圖:

核心代碼:
Intent it = new Intent();
it.setAction(Intent.ACTION_VIEW);
it.setData(Uri.parse("http://www.baidu.com"));
startActivity(it);
在記事本中應用
在編輯頁面當點擊返回按鈕的時候跳轉到主頁面
EditActivity:
public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_HOME){
return true;
}
else if(keyCode == KeyEvent.KEYCODE_BACK){
Intent intent = new Intent();//只用來傳輸信息,不用來跳轉
intent.putExtra("input",et.getText().toString());
setResult(RESULT_OK,intent);
finish();
return true;
}
return super.onKeyDown(keyCode,event);
}
MainActivity中:
public void onClick(View view) {
//測試btn
//Log.d(TAG,"onClick:click");
Intent intent = new Intent(MainActivity.this,EditActivity.class);//從參數一跳轉到參數二
//啟動活動并獲取結果
startActivityForResult(intent,0); //啟動參數這樣的一個跳轉
}
開發過程
實現點擊按鈕界面的跳轉
按鈕:

跳轉
先初始化按鈕
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//floatingbutton初始化
btn = ( FloatingActionButton)findViewById(R.id.fab);
tv = findViewById(R.id.tv);
之后用一個setOnClickListener函數實現跳轉
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//測試btn
//Log.d(TAG,"onClick:click");
Intent intent = new Intent(MainActivity.this,EditActivity.class);//從參數一跳轉到參數二
//啟動活動并獲取結果
startActivityForResult(intent,0); //啟動參數這樣的一個跳轉
}
});
接受Edit輸入的結果
MainActivity中:
//下面接受startActivityForResult結果
@Override
//通過上面的Intent跳轉到Edit,并通過下面的函數來對Edit的內容進行接收
protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode,resultCode,data);
String edit = data.getStringExtra("input");
//Log.d(TAG,edit);
tv.setText(edit); //輸出輸入的內容到Main屏幕中
}
EditActivity中:
//可以背一下下面格式
//功能:傳回一個“input”的值來對應前面的getStringExtra
public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_HOME){
return true;
}
else if(keyCode == KeyEvent.KEYCODE_BACK){
Intent intent = new Intent();//只用來傳輸信息,不用來跳轉
intent.putExtra("input",et.getText().toString());
setResult(RESULT_OK,intent);
finish();
return true;
}
return super.onKeyDown(keyCode,event);
}
此時的完整代碼:
MainActivity:
package com.example.note;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
public class MainActivity extends AppCompatActivity {
final String TAG = "tag";
FloatingActionButton btn; //后面再初始化
TextView tv;
//筆記本的核心:ListView
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//floatingbutton初始化
btn = ( FloatingActionButton)findViewById(R.id.fab);
tv = findViewById(R.id.tv);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//測試btn
//Log.d(TAG,"onClick:click");
Intent intent = new Intent(MainActivity.this,EditActivity.class);//從參數一跳轉到參數二
//啟動活動并獲取結果
startActivityForResult(intent,0); //啟動參數這樣的一個跳轉
}
});
}
//下面接受startActivityForResult結果
@Override
//通過上面的Intent跳轉到Edit,并通過下面的函數來對Edit的內容進行接收
protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode,resultCode,data);
String edit = data.getStringExtra("input");
//Log.d(TAG,edit);
tv.setText(edit); //輸出輸入的內容到屏幕中
}
}
EditActivity:
package com.example.note;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.EditText;
import android.content.Intent;
import java.security.Key;
public class EditActivity extends AppCompatActivity{
//實例化一個et
EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_layout);
//定位輸入好的內容
et=findViewById(R.id.et);
}
//可以背一下下面格式
//功能:傳回一個“input”的值來對應前面的getStringExtra
public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_HOME){
return true;
}
else if(keyCode == KeyEvent.KEYCODE_BACK){
Intent intent = new Intent();//只用來傳輸信息,不用來跳轉
intent.putExtra("input",et.getText().toString());
setResult(RESULT_OK,intent);
finish();
return true;
}
return super.onKeyDown(keyCode,event);
}
}
效果
點擊按鈕會跳轉到edit界面,輸入內容后按返回鍵會將內容顯示在MainActivity界面中



浙公網安備 33010602011771號