前言
找到一本不错的书——《第一行代码Android》,虽然是基于4.X版本的,但还有很多知识没有变,当然也还有一些东西变化了。所以决定用Android Studio1.4单刷第一行代码Android。
隐藏标题栏
在安卓4.x可以使用以下两种方法隐藏标题栏:
1、在代码中实现:
在此方法setContentView(R.layout.main)
之前加入:
requestWindowFeature(Window.FEATURE_NO_TITLE)
;标题栏就没有了。
2、在AndroidManifest.xml中实现:
注册Activity时加上如下的一句配置就可以实现。
1 2 3 4
| <activity android:name=".MainActivity" android:theme="@android:style/Theme.NoTitleBar"> </activity>
|
但是从5.0起,这两个方法就不起作用了,出现空指针的错误。
我郁闷了很久,再网上查了很多朋友有这个问题。后来发现我忽略了一个细节:
我的Activity活动继承自AppCompatActivity,而不是Activity;
在API文档中可以看到AppCompatActivity是Activity的子类;
后来,我把继承AppCompatActivity改为了继承Activity,再试上面两个方法就都成功了。(我是版本Android6.0的版本)
隐式Intent用法:
功能:两个按钮,第一个按钮显示一个Toast信息;第二个按钮启动一个浏览器(百度)。
代码:
在xml文件中:
1 2 3 4 5 6 7 8 9 10
| <Button android:id="@+id/button1_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="button1"/> <Button android:id="@+id/button1_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="button2"/>
|
在MainActivity.java中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| public class MainActivity extends Activity { private Button button1; private Button button2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main);
button1 = (Button)findViewById(R.id.button1_1); button2 = (Button)findViewById(R.id.button1_2);
button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "点击了第一个按钮", Toast.LENGTH_SHORT).show(); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent); } }); } }
|
用Intent向下一个活动传递数据
功能:点击第一个活动的按钮,跳转到第二个活动;第二个活动显示“你好”;当点击按钮后,显示第一个活动传入的字符串数据
代码:
这里设置两个Activity:MainActivity和FirstActivity。
在MainActivity中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class MainActivity extends Activity { private Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
button1 = (Button)findViewById(R.id.button0_1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, FirstActivity.class); intent.putExtra("myData", "hello,smallbo"); intent.putExtra("year", 2015); startActivity(intent); } }); } }
|
在FirstActivity中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| public class FirstActivity extends Activity { private TextView textView1; private Button button1;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first);
textView1 = (TextView)findViewById(R.id.text1_1); button1 = (Button)findViewById(R.id.button1_1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = getIntent(); String str = intent.getStringExtra("myData"); int i = intent.getIntExtra("year", 0); textView1.setText(str); System.out.println(i); } });
} }
|
用Bundle向下一个活动传递数据
功能:
点击第一个活动的按钮,跳转到第二个活动;第二个活动显示“the first data”和0.2015
代码:
这里设置两个Activity:MainActivity和FirstActivity。xml文件代码就不贴出来了,比较简单。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| public class MainActivity extends AppCompatActivity { private Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
button1 = (Button)findViewById(R.id.button0_1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, FirstActivity.class); Bundle bundle = new Bundle(); bundle.putString("data1", "the first data"); bundle.putFloat("data2", 0.2015f); intent.putExtras(bundle); startActivity(intent); } }); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class FirstActivity extends AppCompatActivity { private TextView textView1; private TextView textView2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first);
textView1 = (TextView)findViewById(R.id.textView1_1); textView2 = (TextView)findViewById(R.id.textView1_2);
Intent intent = getIntent(); Bundle bundle = intent.getExtras(); textView1.setText(bundle.getString("data1")); textView2.setText(bundle.getFloat("data2")+""); } }
|