MainActivity代码:
package com.example.myapplication; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; import android.widget.TextView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RecyclerView recyclerView=findViewById(R.id.recyclerView); List<MyItem> list=new ArrayList<MyItem>(); MyItem myItem=new MyItem("汉堡","20",R.drawable.hb); list.add(myItem); MyAdapter myAdapter=new MyAdapter(list); myAdapter.setOnItemLickListner(new MyAdapter.onItemClickListener() { @Override public void onItemClick(View view, int position) { Log.d("info",String.valueOf(list.get(position).chkName)); } }); LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this); recyclerView.setLayoutManager(linearLayoutManager); recyclerView.setAdapter(myAdapter); } }
MainActivity2代码:
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.database.Cursor; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.database.sqlite.SQLiteDatabase; public class MainActivity2 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); Button button=findViewById(R.id.button); Button button2=findViewById(R.id.button2); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { SQLiteDatabase sqLiteDatabase=SQLiteDatabase.openOrCreateDatabase(getFilesDir().getAbsolutePath()+"/score.db",null); String sql="create table xw1(xh text,score real)"; sqLiteDatabase.execSQL(sql); sql="insert into xw1(xh,score) values('20200001',60)"; sqLiteDatabase.execSQL(sql); sqLiteDatabase.close(); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { SQLiteDatabase sqLiteDatabase=SQLiteDatabase.openDatabase(getFilesDir().getAbsolutePath()+"/score.db",null,0); String sql="select * from xw1"; Cursor cursor=sqLiteDatabase.rawQuery(sql,null); cursor.moveToFirst(); Log.d("info",cursor.getString(0).toString()); cursor.close(); sqLiteDatabase.close(); } }); } }
MainActivity3代码(多线程运行测试)
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.widget.TextView; public class MainActivity3 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); Handler handler=new Handler(); new Thread(new Runnable() { @Override public void run() { for(int i=0;i<10;i++){ Log.d("info","线程1:"+String.valueOf(i)); String s="线程1:"+String.valueOf(i); handler.post(new Runnable() { @Override public void run() { TextView textView=findViewById(R.id.textView2); textView.setText(s); } }); try{ Thread.sleep(100); } catch (Exception ex){ } } } }).start(); new Thread(new Runnable() { @Override public void run() { for(int i=0;i<10;i++){ Log.d("info","线程2:"+String.valueOf(i)); String s="线程2:"+String.valueOf(i); handler.post(new Runnable() { @Override public void run() { TextView textView=findViewById(R.id.textView2); textView.setText(s); } }); try{ Thread.sleep(100); } catch (Exception ex){ } } } }).start(); } }
MainActivity4代码(单词表数据库连接)
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class MainActivity4 extends AppCompatActivity { String fy=""; Handler handler=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main4); Button button=findViewById(R.id.button3); handler=new Handler(); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { EditText editText=findViewById(R.id.editTextTextPersonName); String eng=editText.getText().toString(); Log.d("info",eng); new Thread(new Runnable() { @Override public void run() { try{ String driverName="net.sourceforge.jtds.jdbc.Driver"; String dbURL="jdbc:jtds:sqlserver://103.45.99.7:1433;DatabaseName=[单词表]"; String userName="tempsql"; String userPass="tempsql"; Connection connection; connection= DriverManager.getConnection(dbURL,userName,userPass); String sql="select * from [四级] where english='"+eng+"'"; Statement statement=connection.createStatement(); ResultSet resultSet=statement.executeQuery(sql); if(resultSet.next()){ fy=resultSet.getString("chinese"); } else{ fy="没找到"; } Log.d("info",fy); resultSet.close(); //Statement.close(); connection.close(); handler.post(new Runnable() { @Override public void run() { TextView textView=findViewById(R.id.textView3); textView.setText(fy); } }); } catch (Exception ex){ Log.d("info",ex.getMessage()); } } }).start(); } }); } Runnable runnable=new Runnable() { @Override public void run() { } }; }
MyAdapter代码(练习RecyclerView)
package com.example.myapplication; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.List; public class MyAdapter extends RecyclerView.Adapter { List<MyItem> list; onItemClickListener itemClickListener; public MyAdapter(List<MyItem> list){ this.list=list; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View itemView= LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerlayout,null,false); ViewHolder viewHolder=new ViewHolder(itemView); return viewHolder; } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { ViewHolder viewHolder=(ViewHolder) holder; int wz=position; viewHolder.checkBox.setText(list.get(position).chkName); viewHolder.textView.setText(list.get(position).txtPrice); viewHolder.imageView.setImageResource(list.get(position).img); viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { itemClickListener.onItemClick(viewHolder.itemView,wz); } }); } @Override public int getItemCount() { return list.size(); } class ViewHolder extends RecyclerView.ViewHolder{ CheckBox checkBox; TextView textView; ImageView imageView; public ViewHolder(@NonNull View itemView) { super(itemView); this.checkBox=itemView.findViewById(R.id.checkBox); this.textView=itemView.findViewById(R.id.textView); this.imageView=itemView.findViewById(R.id.imageView); } } public interface onItemClickListener{ void onItemClick(View view,int position); } public void setOnItemLickListner(onItemClickListener onItemLickListener){ this.itemClickListener=onItemLickListener; } }
MyItem代码(也是RecyclerView)
package com.example.myapplication; public class MyItem { String chkName; String txtPrice; int img; public MyItem(String chkName,String txtPrice,int img){ this.chkName=chkName; this.txtPrice=txtPrice; this.img=img; } }
主界面代码:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.MyApplication" tools:targetApi="31"> <activity android:name=".MainActivity4" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.app.lib_name" android:value="" /> </activity> <activity android:name=".MainActivity3" android:exported="true"> <meta-data android:name="android.app.lib_name" android:value="" /> </activity> <activity android:name=".MainActivity2" android:exported="true"> <meta-data android:name="android.app.lib_name" android:value="" /> </activity> <activity android:name=".MainActivity" android:exported="true"> <meta-data android:name="android.app.lib_name" android:value="" /> </activity> </application> </manifest>
activity_main3界面只有一个文本框
activity_main界面:
activity_main2界面
activity_main4界面
recyclerlayout界面