브라우저를 열고 http://192168.25.1 에 접근 한다.
사용자 계정 : admin
사용자 암호 : admin
필요한 설정을 할 수 있다.
Button btnTest = (Button)findViewById(R.id.btnTest);
btnTest.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast toast = Toast.makeText(getBaseContext(), "hello", Toast.LENGTH_SHORT);
LinearLayout ll = (LinearLayout)toast.getView();
TextView tv = (TextView)ll.getChildAt(0);
ll.removeAllViews();
ImageView imgVu = new ImageView(getBaseContext());
imgVu.setImageResource(R.drawable.android);
ll.addView(imgVu);
ll.addView(tv);
toast.show();
}
});
MSG : %1$s, %2$d
String getMsg = getResources().getString(R.string.testMessage); String resultStr = String.format(getMsg, "test", 12345); TextView txtMsg = (TextView) findViewById(R.id.txtMsg); txtMsg.setText(resultStr);
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btnTest).setOnClickListener(mClickListener);
findViewById(R.id.btnTest2).setOnClickListener(mClickListener);
}
Button.OnClickListener mClickListener = new View.OnClickListener()
{
public void onClick(View v)
{
switch (v.getId())
{
case R.id.btnTest:
Toast.makeText(getBaseContext(), "DDDDD", 0).show();
break;
case R.id.btnTest2:
Toast.makeText(getBaseContext(), "EEEEE", 0).show();
break;
}
}
};
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnTest = (Button)findViewById(R.id.btnTest);
btnTest.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), "RRRRRRR", 0).show();
}
});
}
<Button android:id="@+id/btnTest" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/btnMSG_01" android:onClick="testMethod" />
public void testMethod(View v){
Toast.makeText(getBaseContext(), "GGGGGGG", 0).show();
}
<connector connectiontimeout="20000"
edirectport="8443"
port="80"
protocol="HTTP/1.1"
uriencoding="UTF-8"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/plain,text/html,text/xml,application/xhtml+xml,application/xml,application/rss+xml,text/css,application/javascript,application/x-javascript,audio/midi,image/png,image/gifContent-Transfer-Encoding:binary">
</connector>get 방식으로 전달 되는 한글이 깨지는 경우 위와 같이 URIEncoding="UTF-8" 을 추가 하도록 한다.
package com.example.androidexam07;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Build;
import android.os.Bundle;
import android.os.Message;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainActivity extends Activity {
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
// 가로 고정은 AndroidManifest.xml 에서 설정 할 것.
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); // 캐쉬 사용 안함
webView.getSettings().setJavaScriptEnabled(true); // 자바스크립트 사용 여부
webView.getSettings().setSupportMultipleWindows(true); // 멀티플 윈도우
/*
* webView.getSettings().setSaveFormData(false); // 비밀번호저장 사용 안함
* webView.getSettings().setSavePassword(false); // 폼 데이터 저장(자동완성) 사용 안함
* webView.getSettings().setBuiltInZoomControls(false); // 멀티줌 사용 안함
* webView.getSettings().setSupportZoom(false); // 줌 사용 안함
*
* webView.setVerticalScrollBarEnabled(false); // 세로 스크롤바 사용 안함
* webView.setHorizontalScrollBarEnabled(false); // 가로 스크롤바 사용 안함
*/
webView.setWebViewClient(new webViewClient());
webView.setWebChromeClient(new webViewChromeClient());
webView.loadUrl("http://192.168.0.16/helloWeb/test.jsp");
}
/**
* 프로그램 종료시
* */
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
webView.clearCache(true); // 웹뷰 캐시 삭제
webView.destroy();
webView = null;
clearWebViewCache(null); // 웹뷰 캐시 삭제(전체)
android.os.Process.killProcess(android.os.Process.myPid()); // pid kill
}
/**
* 웹뷰 의 캐시 삭제
* */
private void clearWebViewCache(java.io.File dir){
if(dir == null){
dir = getCacheDir();
}
if(dir == null){
return;
}
java.io.File[] content = dir.listFiles();
try{
for(int i=0; i<content.length; i++){
if(content[i].isDirectory()){
clearWebViewCache(content[i]);
}else{
content[i].delete();
}
}
}catch(Exception e){
e.printStackTrace();
}
}
/**
* '뒤로가기' 하드웨어 버튼 눌렀을 경우
* */
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
if(webView.canGoBack()){
webView.goBack();
}else{
Toast.makeText(getBaseContext(), "프로그램을 종료 합니다.", Toast.LENGTH_SHORT).show();
super.onBackPressed();
}
}
/**
* WebViewClient 상속
* */
private class webViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
// return super.shouldOverrideUrlLoading(view, url);
view.loadUrl(url);
return true;
}
}
/**
* WebChromeClient 상속
* */
private class webViewChromeClient extends WebChromeClient {
@Override
public boolean onCreateWindow(WebView view, boolean dialog,
boolean userGesture, Message resultMsg) {
// TODO Auto-generated method stub
return super.onCreateWindow(view, dialog, userGesture, resultMsg);
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public boolean onJsAlert(WebView view, String url, String message,
final JsResult result) {
// TODO Auto-generated method stub
// return super.onJsAlert(view, url, message, result);
new AlertDialog.Builder(view.getContext(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT)
.setTitle("알림")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
}).setCancelable(false).create().show();
return true;
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public boolean onJsConfirm(WebView view, String url, String message,
final JsResult result) {
// TODO Auto-generated method stub
// return super.onJsConfirm(view, url, message, result);
new AlertDialog.Builder(view.getContext(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT)
.setTitle("알림")
.setMessage(message)
.setPositiveButton("예",
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
})
.setNegativeButton("아니오",
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result.cancel();
}
}).setCancelable(false).create().show();
return true;
}
}
}
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
<activity android:label="@string/app_name" android:name="com.example.androidexam07.MainActivity" android:screenOrientation="landscape"> </activity>