Bài 42: Đáp án mẫu đề thi cuối kỳ Android


Dưới đây là đáp án mẫu cho 2 đề thi cuối kỳ Android của lớp 13DTH1LT2

Đề 1:LTDiDong_12DTH1LT3_DeThiCuoiKy_2013_MD001

Đề 2:LTDiDong_12DTH1LT3_DeThiCuoiKy_2013_MD002

Ở đây Tôi chỉ giải câu 1 của các đề trên, câu 2 Sqlite các bạn tự làm vì nó rất dễ, các bài tập trước đó đều đã làm qua.

Câu 1 – đề 1:

s1Tôi sẽ xử lý lệnh vẽ Button và căn lề Button theo vị trí xuất hiện (tính từ vị trí 0)

– XML Layout cho câu hỏi này là:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/LinearLayout1"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context=".MainActivity" >

<LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content" >

<Button
 android:id="@+id/btnDrawButton"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Draw Button:" />

<EditText
 android:id="@+id/editNumber"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_weight="1"
 android:ems="10" />

</LinearLayout>

<ScrollView
 android:id="@+id/scrollView1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content" >

<LinearLayout
 android:id="@+id/layout_draw_button"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >

</LinearLayout>

 </ScrollView>

&nbsp;

</LinearLayout>

Source xử lý:


package tranduythanh.com;

import java.util.Random;
import java.util.concurrent.atomic.AtomicBoolean;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.app.Activity;
import android.graphics.Point;
import android.view.Display;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

public class MainActivity extends Activity {

Handler handlerMain;
 AtomicBoolean atomic=null;
 LinearLayout layoutdevebutton;
 Button btnOk;
 EditText edtOk;
 int sizehalf=0;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 //lấy LinearLayout chứa Button ra
 layoutdevebutton=(LinearLayout) findViewById(R.id.layout_draw_button);
 final Random rd=new Random();
 btnOk=(Button) findViewById(R.id.btnDrawButton);
 edtOk=(EditText) findViewById(R.id.editNumber);
 handlerMain=new Handler()
 {
 @Override
 public void handleMessage(Message msg) {
 // TODO Auto-generated method stub
 super.handleMessage(msg);
 //Nhận nhãn của Button được gửi về từ tiến trình con
 int v=rd.nextInt(100);
 String nhan_button=v+"";
 //khởi tạo 1 Button
 Button b=new Button(MainActivity.this);
 //thiết lập nhãn cho Button
 b.setText(nhan_button);
 //thiết lập kiểu Layout : Width, Height
 LayoutParams params=new
 LayoutParams(LayoutParams.WRAP_CONTENT,
 LayoutParams.WRAP_CONTENT);
 if(msg.arg1%2==0)
 params.gravity=Gravity.LEFT;
 else
 params.gravity=Gravity.RIGHT;
 //thiết lập layout cho Button

 b.setWidth(sizehalf);
 b.setLayoutParams(params);
 //đưa Button vào layoutdevebutton
 layoutdevebutton.addView(b);

 }
 };
 btnOk.setOnClickListener(new OnClickListener() {

@Override
 public void onClick(View arg0) {
 // TODO Auto-generated method stub
 doStart();
 }
 });
 }
 @Override
 protected void onResume() {
 // TODO Auto-generated method stub
 super.onResume();
 //lấy màn hình điện thoại đang sử dụng
 Display display = getWindowManager().getDefaultDisplay();
 Point size = new Point();
 display.getSize(size);
 sizehalf=size.x/2;
 }
 private void doStart()
 {
 layoutdevebutton.removeAllViews();
 atomic=new AtomicBoolean(false);
 final int sobutton=Integer.parseInt(edtOk.getText()+"");
 Thread thCon=new Thread(new Runnable() {

 @Override
 public void run() {
 // TODO Auto-generated method stub

 for(int i=0;i<sobutton && atomic.get();i++)
 {
 //nghỉ 200 mili second
 SystemClock.sleep(200);
 //lấy message từ Main Thread
 Message msg=handlerMain.obtainMessage();
 //gán dữ liệu cho msg Mainthread, lưu vào biến obj
 //chú ý ta có thể lưu bất kỳ kiểu dữ liệu nào vào obj
 msg.arg1=i;
 //gửi trả lại message cho Mainthread
 handlerMain.sendMessage(msg);
 }
 }
 });
 atomic.set(true);
 //thực thi tiến trình
 thCon.start();
 }

}

– Câu 1 – đề 2:

s3

 

Xml Layout:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/LinearLayout1"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context=".MainActivity" >

<LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content" >

<Button
 android:id="@+id/btnDrawButton"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Draw View:" />

<EditText
 android:id="@+id/editNumber"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_weight="1"
 android:ems="10" />

</LinearLayout>

<ScrollView
 android:id="@+id/scrollView1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content" >

<LinearLayout
 android:id="@+id/layout_draw_button"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >

</LinearLayout>

 </ScrollView>

&nbsp;

</LinearLayout>

Xử lý source code:


package tranduythanh.com;

import java.util.Random;
import java.util.concurrent.atomic.AtomicBoolean;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.app.Activity;
import android.graphics.Point;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;

public class MainActivity extends Activity {

Handler handlerMain;
 AtomicBoolean atomic=null;
 LinearLayout layoutdevebutton;
 Button btnOk;
 EditText edtOk;
 int sizehalf=0;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 //lấy LinearLayout chứa Button ra
 layoutdevebutton=(LinearLayout) findViewById(R.id.layout_draw_button);
 final Random rd=new Random();
 btnOk=(Button) findViewById(R.id.btnDrawButton);
 edtOk=(EditText) findViewById(R.id.editNumber);
 handlerMain=new Handler()
 {
 @Override
 public void handleMessage(Message msg) {
 // TODO Auto-generated method stub
 super.handleMessage(msg);
 //Nhận nhãn của Button được gửi về từ tiến trình con
 int v=rd.nextInt(100);
 String nhan_button=v+"";
 //khởi tạo 1 Button
 View vv=null;
 if(msg.arg1%2==0)
 {
 vv=new Button(MainActivity.this);
 ((Button) vv).setText(nhan_button);
 }
 else
 {

 vv=new EditText(MainActivity.this);
 ((EditText) vv).setText(nhan_button);
 }

 LayoutParams params=new
 LayoutParams(LayoutParams.MATCH_PARENT,
 LayoutParams.WRAP_CONTENT);
 vv.setLayoutParams(params);

 //đưa Button vào layoutdevebutton
 layoutdevebutton.addView(vv);

 }
 };
 btnOk.setOnClickListener(new OnClickListener() {

@Override
 public void onClick(View arg0) {
 // TODO Auto-generated method stub
 doStart();
 }
 });
 }
 @Override
 protected void onResume() {
 // TODO Auto-generated method stub
 super.onResume();
 Display display = getWindowManager().getDefaultDisplay();
 Point size = new Point();
 display.getSize(size);
 sizehalf=size.x/2;
 }
 private boolean isPrime(int n)
 {
 if(n<2)return false;
 for(int i=2;i<=Math.sqrt(n);i++)
 if(n%i==0)return false;
 return true;
 }
 private void doStart()
 {
 layoutdevebutton.removeAllViews();
 atomic=new AtomicBoolean(false);
 final int sobutton=Integer.parseInt(edtOk.getText()+"");
 Thread thCon=new Thread(new Runnable() {

 @Override
 public void run() {
 // TODO Auto-generated method stub

 for(int i=0;i<sobutton && atomic.get();i++)
 {
 //nghỉ 200 mili second
 SystemClock.sleep(200);
 //lấy message từ Main Thread
 Message msg=handlerMain.obtainMessage();
 //gán dữ liệu cho msg Mainthread, lưu vào biến obj
 //chú ý ta có thể lưu bất kỳ kiểu dữ liệu nào vào obj
 msg.arg1=i;
 //gửi trả lại message cho Mainthread
 handlerMain.sendMessage(msg);
 }
 }
 });
 atomic.set(true);
 //thực thi tiến trình
 thCon.start();
 }

}

Các bạn có thể tải đáp án mẫu tại đây:

Đáp án mẫu câu 1 đề 1: https://www.mediafire.com/download/ob6mc2webu37usb/ThiCuoiKy_De1_Cau1.rar

Đáp án mẫu câu 1 đề 2: http://www.mediafire.com/download/w3rn3thi7bqh1gk/ThiCuoiKy_De2_Cau1.rar

3 responses

  1. […] ps: Đán án mẫu cho câu 1 sinh viên xem ở đây https://duythanhcse.wordpress.com/2013/11/23/bai-42-dap-an-mau-de-thi-cuoi-ky-android/ […]

  2. câu 2 mới quan trọng sao k cho đáp án câu 2 thầy ơi

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.