androidstudio一个完整的app实例(附源码和数据库)

  • Post category:other

Android Studio一个完整的App实例攻略

本文将详细介绍如何使用Android Studio创建一个完整的App实例,包括创建数据库、设计UI界面、编写Java代码等。同时,本文还提供了两个示例说明,以帮助读者更好地理解和应用这些技术。

创建数据库

在Android Studio中创建数据库需要以下步骤:

  1. 在项目的app目录下创建一个名为“databases”的文件夹。

  2. 在“databases”文件夹下创建一个名为“mydatabase.db”的SQLite数据库文件。

  3. 在“mydatabase.db”数据库文件中创建一个名为“users”的表,包括id、name和email三个字段。

CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
email TEXT
);

设计UI界面

在Android Studio中设计UI界面需要以下步骤:

  1. 在res/layout目录下创建一个名为“activity_main.xml”的布局文件。

  2. 在“activity_main.xml”布局文件中添加一个ListView控件,用于显示用户列表。

<ListView
android:id="@+id/user_list"
android:layout_width="match_parent"
android:layout_height="match_parent" />

  1. 在res/menu目录下创建一个名为“main_menu.xml”的菜单文件。

  2. 在“main_menu.xml”菜单文件中添加一个“Add User”菜单项,用于添加新用户。

“`


“`

编写Java代码

在Android Studio中编写Java代码需要以下步骤:

  1. 创建一个名为“User”的Java类,用于表示用户信息。

“`
public class User {
private int id;
private String name;
private String email;

   public User(int id, String name, String email) {
       this.id = id;
       this.name = name;
       this.email = email;
   }

   public int getId() {
       return id;
   }

   public void setId(int id) {
       this.id = id;
   }

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   public String getEmail() {
       return email;
   }

   public void setEmail(String email) {
       this.email = email;
   }

}
“`

  1. 创建一个名为“DatabaseHelper”的Java类,用于管理数据库。

“`
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = “mydatabase.db”;
private static final int DATABASE_VERSION = 1;

   public DatabaseHelper(Context context) {
       super(context, DATABASE_NAME, null, DATABASE_VERSION);
   }

   @Override
   public void onCreate(SQLiteDatabase db) {
       db.execSQL("CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT)");
   }

   @Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
       db.execSQL("DROP TABLE IF EXISTS users");
       onCreate(db);
   }

   public void addUser(User user) {
       SQLiteDatabase db = this.getWritableDatabase();
       ContentValues values = new ContentValues();
       values.put("name", user.getName());
       values.put("email", user.getEmail());
       db.insert("users", null, values);
       db.close();
   }

   public List<User> getAllUsers() {
       List<User> userList = new ArrayList<>();
       String selectQuery = "SELECT * FROM users";
       SQLiteDatabase db = this.getWritableDatabase();
       Cursor cursor = db.rawQuery(selectQuery, null);
       if (cursor.moveToFirst()) {
           do {
               User user = new User(
                       cursor.getInt(0),
                       cursor.getString(1),
                       cursor.getString(2)
               );
               userList.add(user);
           } while (cursor.moveToNext());
       }
       cursor.close();
       db.close();
       return userList;
   }

}
“`

  1. 创建一个名为“MainActivity”的Java类,用于管理UI界面和用户交互。

“`
public class MainActivity extends AppCompatActivity {
private ListView userList;
private DatabaseHelper databaseHelper;
private List users = new ArrayList<>();

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       userList = findViewById(R.id.user_list);
       databaseHelper = new DatabaseHelper(this);
       users = databaseHelper.getAllUsers();
       UserAdapter userAdapter = new UserAdapter(this, users);
       userList.setAdapter(userAdapter);
       registerForContextMenu(userList);
       userList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
           @Override
           public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
               User user = users.get(position);
               Toast.makeText(MainActivity.this, user.getName() + " " + user.getEmail(), Toast.LENGTH_SHORT).show();
           }
       });
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
       getMenuInflater().inflate(R.menu.main_menu, menu);
       return true;
   }

   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
       switch (item.getItemId()) {
           case R.id.menu_add_user:
               Intent intent = new Intent(MainActivity.this, AddUserActivity.class);
               startActivity(intent);
               return true;
           default:
               return super.onOptionsItemSelected(item);
       }
   }

   @Override
   protected void onResume() {
       super.onResume();
       users = databaseHelper.getAllUsers();
       UserAdapter userAdapter = new UserAdapter(this, users);
       userList.setAdapter(userAdapter);
   }

}
“`

  1. 创建一个名为“AddUserActivity”的Java类,用于添加新用户。

“`
public class AddUserActivity extends AppCompatActivity {
private EditText nameEditText;
private EditText emailEditText;
private Button addButton;
private DatabaseHelper databaseHelper;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_add_user);
       nameEditText = findViewById(R.id.name_edit_text);
       emailEditText = findViewById(R.id.email_edit_text);
       addButton = findViewById(R.id.add_button);
       databaseHelper = new DatabaseHelper(this);
       addButton.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               String name = nameEditText.getText().toString();
               String email = emailEditText.getText().toString();
               User user = new User(0, name, email);
               databaseHelper.addUser(user);
               finish();
           }
       });
   }

}
“`

示例说明

示例1:添加新用户

以下是添加新用户的示例:

  1. 在MainActivity中注册“Add User”菜单项的点击事件。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_add_user:
Intent intent = new Intent(MainActivity.this, AddUserActivity.class);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}

  1. 在AddUserActivity中获取用户输入的姓名和邮箱,并将其添加到数据库中。

addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEditText.getText().toString();
String email = emailEditText.getText().toString();
User user = new User(0, name, email);
databaseHelper.addUser(user);
finish();
}
});

示例2:显示用户信息

以下是显示用户信息的示例:

  1. 在MainActivity中注册ListView的点击事件。

userList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
User user = users.get(position);
Toast.makeText(MainActivity.this, user.getName() + " " + user.getEmail(), Toast.LENGTH_SHORT).show();
}
});

  1. 在ListView的点击事件中获取用户信息,并显示在Toast中。

User user = users.get(position);
Toast.makeText(MainActivity.this, user.getName() + " " + user.getEmail(), Toast.LENGTH_SHORT).show();

结论

使用Android Studio创建一个完整的App实例需要包括创建数据库、设计UI界面、编写Java代码等多个步骤。通过本文的介绍,您应该已经了解了Android Studio创建一个完整的App实例的完整攻略,并掌握了两个示例。