암시적 인텐트(Implicit Intent)


activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.implicitintent.mystoryg.implicitintent.MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/dial"
android:text="@string/call_dial"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/map"
android:text="@string/call_map"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/url"
android:text="@string/call_url"/>

</LinearLayout>


MainActivity.java

 package com.implicitintent.mystoryg.implicitintent;


import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity implements View.OnClickListener {

static final int[] BUTTONS = {
R.id.dial,
R.id.map,
R.id.url
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

for (int buttons : BUTTONS) {
Button button = (Button) findViewById(buttons);
button.setOnClickListener(this);
}
}

@Override
public void onClick(View v) {
int id = v.getId();
Intent intent;
switch (id) {
case R.id.dial:
intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:02-1588-3820"));
startActivity(intent);
break;
case R.id.map:
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:37.586644,126.974755"));
startActivity(intent);
break;
case R.id.url:
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(intent);
break;
}
}
}




안드로이드 마시멜로부터 WebView에서 html을 읽어올 때 word-break: 옵션을 인식한다.

롤리팝에서는 해당 옵션에 대한 인식을 하지 않았기에 기존에 정상적으로 보이던 내용에 문제가 될 수 있다.


줄바꿈이 제대로 되지 않아 한 라인에 표시되는 단어의 수가 이상하거나 가로 스크롤이 생기는 등..


구글링을 해도 마시멜로에 탑재된 WebView의 변경점을 찾을 수가 없었으나 이리저리 하다보니 발견한 나름의 해결법이다.


해당 옵션을 지워주고 사용하면 정상적으로 보인다.

이클립스 Java was started but returned exit code=13 오류 해결 방법은 검색해보면 다양하다.


원인이 약간씩 차이가 있기 때문인 듯 하다.

여기서 소개하는 해결법의 원인은 두 가지이다.


1. 특정 웹사이트에서 요구하는 Java 버전과 기존에 사용 중이던 버전이 맞지 않아 Java 8을 설치한 경우

   -> 제어판에서 프로그램 제거 또는 변경에서 Java 8을 삭제하면 된다. (기존 버전의 Java와 별개로 설치되어 있을 것이다.)


2. Java 8로 업데이트 후 이클립스 실행 시 오류 메시지가 나타나는 경우이다. 기존에 아무 문제 없이 실행되다가 Java 8로 업데이트 후 이클립스가 동작이 되지 않아서 1번의 문제인 줄 알고 Java 8을 삭제했다. 그러나 이 경우에는 기존의 Java가 업데이트 된 경우라서 Java 자체가 (이제와서 조금 엄밀히 말하자면 JDK) 삭제된 상황이다. 그러면 이클립스는 "A Java Runtime Environment (jre) or java development ...~~~" 와 관련된 메시지와 함께 실행이 되지 않는다.

   -> 단순하다. JDK를 다시 설치하면 된다. (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)


+ Recent posts