实例1:创建Android项目
首先,你需要安装Android Studio,这是Android开发的官方IDE。打开Android Studio,创建一个新的项目,选择合适的模板,比如“Empty Activity”,然后填写项目名称、保存位置等信息。
// 创建一个新的Android项目
// 1. 打开Android Studio
// 2. 点击“Start a new Android Studio project”
// 3. 选择“Empty Activity”模板
// 4. 填写项目名称、保存位置等信息
// 5. 点击“Finish”
实例2:配置布局文件
在Android开发中,布局文件是定义界面元素的XML文件。在res/layout目录下创建一个名为activity_main.xml的布局文件,并添加一个按钮。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击我"
android:layout_centerInParent="true" />
</RelativeLayout>
实例3:编写Activity代码
在MainActivity.java文件中,找到onCreate方法,并设置按钮的点击事件。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "按钮被点击了!", Toast.LENGTH_SHORT).show();
}
});
}
}
实例4:使用Toast显示消息
在上面的代码中,我们使用了Toast.makeText方法来显示一个简单的消息提示。
// 显示一个Toast消息
Toast.makeText(MainActivity.this, "按钮被点击了!", Toast.LENGTH_SHORT).show();
实例5:使用Logcat查看日志
在开发过程中,使用Logcat可以帮助你查看应用的运行日志。在Android Studio中,可以通过Logcat窗口查看日志信息。
实例6:创建一个简单的列表
在activity_main.xml中添加一个ListView,并在MainActivity.java中设置适配器。
// activity_main.xml
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private ListView listView;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView1);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, new String[]{"苹果", "香蕉", "橙子"});
listView.setAdapter(adapter);
}
}
实例7:使用RecyclerView替代ListView
RecyclerView是ListView的升级版,具有更好的性能和灵活性。在activity_main.xml中替换ListView为RecyclerView,并在MainActivity.java中设置适配器。
// activity_main.xml
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private RecyclerView.Adapter adapter;
private RecyclerView.LayoutManager layoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView1);
layoutManager = new LinearLayoutManager(this);
adapter = new MyAdapter(new String[]{"苹果", "香蕉", "橙子"});
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
}
}
实例8:使用Intent进行页面跳转
在MainActivity.java中,添加一个按钮的点击事件,并使用Intent实现页面跳转。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
});
}
}
实例9:创建第二个Activity
在Android Studio中,创建一个新的Activity,比如SecondActivity,并设置布局文件。
// SecondActivity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="这是第二个Activity"
android:layout_centerInParent="true" />
</RelativeLayout>
实例10:在第二个Activity中获取数据
在SecondActivity.java中,获取从MainActivity传递过来的数据。
// SecondActivity.java
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
Intent intent = getIntent();
String data = intent.getStringExtra("key");
TextView textView = findViewById(R.id.textView1);
textView.setText(data);
}
}
实例11:使用SharedPreferences存储数据
在MainActivity.java中,使用SharedPreferences存储一个简单的字符串数据。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("name", "张三");
editor.apply();
}
}
实例12:从SharedPreferences读取数据
在MainActivity.java中,从SharedPreferences读取之前存储的数据。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
String name = sharedPreferences.getString("name", "匿名");
Toast.makeText(this, "欢迎回来," + name + "!", Toast.LENGTH_SHORT).show();
}
}
实例13:使用SQLite数据库存储数据
在MainActivity.java中,使用SQLite数据库存储一个简单的字符串数据。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private SQLiteDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
database = openOrCreateDatabase("mydatabase.db", MODE_PRIVATE, null);
database.execSQL("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)");
ContentValues values = new ContentValues();
values.put("name", "张三");
database.insert("users", null, values);
}
}
实例14:从SQLite数据库读取数据
在MainActivity.java中,从SQLite数据库读取之前存储的数据。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private SQLiteDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
database = openOrCreateDatabase("mydatabase.db", MODE_PRIVATE, null);
Cursor cursor = database.query("users", new String[]{"name"}, null, null, null, null, null);
if (cursor.moveToFirst()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
Toast.makeText(this, "欢迎回来," + name + "!", Toast.LENGTH_SHORT).show();
}
cursor.close();
}
}
实例15:使用网络请求获取数据
在MainActivity.java中,使用HttpURLConnection发送网络请求,获取数据。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
URL url = new URL("http://example.com/data");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
connection.disconnect();
// 处理获取到的数据
} catch (Exception e) {
e.printStackTrace();
}
}
}
实例16:使用Gson解析JSON数据
在MainActivity.java中,使用Gson库解析JSON数据。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private Gson gson;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gson = new Gson();
String json = "{\"name\":\"张三\",\"age\":30}";
User user = gson.fromJson(json, User.class);
// 使用解析后的数据
}
}
实例17:使用Retrofit进行网络请求
在MainActivity.java中,使用Retrofit库进行网络请求。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private Retrofit retrofit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
retrofit = new Retrofit.Builder()
.baseUrl("http://example.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
MyApi myApi = retrofit.create(MyApi.class);
Call<User> call = myApi.getUser();
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
// 处理获取到的数据
}
@Override
public void onFailure(Call<User> call, Throwable t) {
// 处理请求失败
}
});
}
}
实例18:使用Material Design组件
在activity_main.xml中,使用Material Design组件,如FloatingActionButton。
// activity_main.xml
<FloatingActionButton
android:id="@+id/fab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:src="@drawable/ic_add"
app:layout_anchor="@id/listView1"
app:layout_anchorGravity="bottom|end" />
实例19:使用Fragment实现页面布局
在activity_main.xml中,使用FrameLayout作为容器,并添加一个Fragment。
// activity_main.xml
<FrameLayout
android:id="@+id/frameLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
// MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.frameLayout1, new MyFragment())
.commit();
}
}
}
实例20:使用RecyclerView实现瀑布流布局
在activity_main.xml中,使用RecyclerView并设置LayoutManager为StaggeredGridLayoutManager。
// activity_main.xml
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.StaggeredGridLayoutManager"
app:spanCount="2" />
通过以上20个实用实例,相信你已经对Android编程有了初步的了解。在实际开发中,还需要不断学习和实践,才能成为一名优秀的Android开发者。祝你学习愉快!
