建立報錯connect run out 可以檢視這篇文章
1.自動建立
2.設定輸出日誌資訊
logt+tab鍵之後會為當前的類自動生成一個TAG常量
關於日誌過濾器
這時候在只有Log.v裡面的訊息,Log.d、i、w、e都沒有出現。
當輸入MainActivity的時候過濾到與其相關的
3.手動建立
選擇No Activity
新增以下程式碼,以免下載東西過慢
我是直接中斷,新增程式碼後再Sync一下
//解決下載慢問題 maven { url = uri("https://maven.aliyun.com/repository/public") } maven { url = uri("https://maven.aliyun.com/repository/google") }
建立後在app\src\main\java\com下面建立一個new->activity->Empty Activity
填入資訊,不要選擇Generate a Layout File(會自動給Activity建立一個對應的佈局檔案,會將FirstActivity設定為當前專案的主要活動)
在app\src\main\res下面建立一個layout目錄
在layout裡面建立一個layout Resource File檔案,名為first_layout
新增按鈕操作
載入佈局,回到FirstActivity中,onCreate中加入以下程式碼
setContentView中傳入佈局檔案的id
去到AndroidManifest.xml中進行註冊,並新增主活動
4.給按鈕增加監聽器
public class FirstActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //新增布局檔案的id setContentView(R.layout.first_layout); //使用Toast方法 // 獲取按鈕例項 Button button1 = findViewById(R.id.Button_1); //為按鈕註冊監聽器 button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Toast.LENGTH_SHORT用來設定顯示時長 Toast.makeText(FirstActivity.this,"這是一個提示",Toast.LENGTH_SHORT).show(); } }); } }
5.選單設定
在res裡面新建目錄 menu,在menu裡面新建main選單檔案
去到FirstActivity裡面編寫相關程式碼,這裡注意,新版as用switch會報錯,要修改成if語句(可以將游標移到switch中按ALT+Enter快捷鍵直接轉換成if語句)
//顯示選單 public boolean onCreateOptionsMenu(Menu menu) { //獲取Inflater透過inflate方法建立選單 getMenuInflater().inflate(R.menu.main,menu); //返回true表示允許顯示選單,false則選單無法顯示 return true; } public boolean onOptionsItemSelected(MenuItem item) { //得到點選的選單的item 的id,給每個選單項加入邏輯處理 int itemId = item.getItemId(); if (itemId == R.id.add_item) { Toast.makeText(this, "點選了新增選單項", Toast.LENGTH_SHORT).show(); } else if (itemId == R.id.remobe_item) { Toast.makeText(this, "點選了刪除選單項", Toast.LENGTH_SHORT).show(); } return true; }
6.跳轉到其他主活動(顯式與隱式Intent)
6.1顯式Intent
先新建一個活動,要選擇Generate a Layout file,單不要選擇Laucher Activity(這個會將其變為主要活動)
在second_activity的layout檔案新增一個按鈕,去Android Manifest裡面看看是否註冊了該活動
實現在FirstActivity中點選按鈕,去到SecondActivity中
// 獲取按鈕例項 Button button1 = findViewById(R.id.Button_1); //為按鈕註冊監聽器 button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Toast.LENGTH_SHORT用來設定顯示時長 // Toast.makeText(FirstActivity.this,"這是一個提示",Toast.LENGTH_SHORT).show(); //在FirstActivity的基礎上開啟SecondActivity Intent intent=new Intent(FirstActivity.this,SecondActivity.class); startActivity(intent); } });
6.2隱式Intent
字串可以自定義,只要在manifest裡面的action字串相同即可。
//隱式intent Intent intent = new Intent("com.example.activitytest.ACTION_START"); startActivity(intent);
在AndroidManifest裡面
<activity android:name=".SecondActivity" android:exported="false"> <intent-filter> <action android:name="com.example.activitytest.ACTION_START"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
透過隱式intent實現點選按鈕能夠開啟Android的另一個程式
//隱式實現點選按鈕,開啟Android另一個程式 Intent intent = new Intent(Intent.ACTION_VIEW); //開啟百度 // intent.setData(Uri.parse("http://www.baidu.com")); //去到撥號頁面 intent.setData(Uri.parse("tel:10086")); startActivity(intent);
6.3透過intent傳遞資料
在FirstActivity按鈕監聽事件中
//intent傳遞資料 Intent intent=new Intent(FirstActivity.this,SecondActivity.class); String data = "Intent傳遞資料到第二個活動"; intent.putExtra("extra_data",data); startActivity(intent);
在SecondActivity中
//取出intent中傳來的資料 Intent intent = getIntent(); String data = intent.getStringExtra("extra_data"); Log.d("SecondActivity",data);
啟動後點選第一個頁面按鈕後