android 在同一activity切换layout,在 Android Studio 添加一个activity并实现跳转
Android Studio比較人性化,當你添加一個activity時,他會自動把相關信息寫入AndroidManifest.xml文件中,同時添加activity的布局文件到資源res->layout下面。
我這里隨便取個名稱,叫TextViewActivity。這時layout下面自動創建的這個文件叫做activity_text_view.xml,就是TextViewActivity所對應的layout。
順便說一句,根據創建activity的命名不同,自動創建的文件名可能各不相同。我是用refactor根據自己的喜好修改了文件名(改成了TestTextViewAcitivity)。使用refactor的好處就是,程序會自動查找文件的所有引用,并在相應的地方加以修改。如果你不在意文件名,大可不用理會這些。
為了演示activity之間的跳轉結果,先完成一個布局文件,如下
源碼中給不同文字添加了些效果,預覽時的顯示效果是這樣的,
接下來我們處理TestTextViewActivity這個文件,先給出源碼
packagecom.spacesoftwares.myapplication2;importandroid.graphics.Paint;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.widget.TextView;public classTestTextViewActivity extendsAppCompatActivity {
privateTextView mtv1;@Overrideprotected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_text_view);mtv1= findViewById(R.id.ttv1);mtv1.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);// set strike through style in the textmtv1.getPaint().setAntiAlias(true);// get rid of the zigzag effect}
}
可以看到,setContentView(R.layout.activity_text_view); 也就是說這個activity所引用的layout就是activity_text_view.xml。
這里還定義了一個TextView mtv1, 他首先通過findViewById(R.id.ttv1);找到layout中對應的TextView的實例(也就是第一行要顯示的文字),然后添加了strike through的效果。這個我們后面會看到。
完成這個基本的activity之后,接下來我們需要完成跳轉工作。在默認情況下,我們直接在MainActivity中添加跳轉代碼即可,如下
importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Button;importandroid.widget.TextView;public classMainActivity extendsAppCompatActivity {
privateButton mBtnTextView;// define a text view button@Overrideprotected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mBtnTextView= findViewById(R.id.btnTextView1);// get the button, it is in activity_main.xmlmBtnTextView.setOnClickListener(newView.OnClickListener() {
public voidonClick(View view) {
Intent intent = newIntent(MainActivity.this,TestTextViewActivity.class);startActivity(intent);}
});};}
其相應的layout(activity_main.xml)如下,
其中,關鍵的跳轉工作的由這小段代碼完成,
mBtnTextView.setOnClickListener(newView.OnClickListener() {
public voidonClick(View view) {
Intent intent = newIntent(MainActivity.this,TestTextViewActivity.class);startActivity(intent);}
});
基本沒什么需要解釋的,首先建立一個傳遞參數的Intent,然后startActivity啟動這個intent所聯系起來的activity。
說明一下,Android中提供的Intent機制是用來協助應用間的交互與通訊的,更直觀地說,Intent可用于應用程序之間,也可用于應用程序內部的activity, service和broadcast receiver之間的交互。Intent(Activity1, Activity2)這種結構中,Intent相當于一個溝通的橋梁,類似于中介的角色。
再順便說明一下這時碰到的怪問題,Android的camelCase的命名方式,mBtnTextView這個名稱我寫成mbtntextView時居然不能成功運行,也不知是程序其他地方沒寫對還是怎么的,把所有命名都改回來最后居然OK了,后來問題無法復現,所以這里備注一下原因不明,以后碰到相同的問題再來檢查。
編譯運行,最后的效果如下所示,
點擊該按鈕,就會跳出下面所示的界面,
嗯,是不是很簡單?
總結
以上是生活随笔為你收集整理的android 在同一activity切换layout,在 Android Studio 添加一个activity并实现跳转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信etc有年费吗
- 下一篇: 交易公司债券,需要注意其交易方式