Android Studio 0.8.14を使っていたときは、何ともなかったのですが、Android Studio 1.0を使っていると、simple_list_item_1がおかしくなっていることに気が付きました。
元々のjavaファイル(MainActivity.java)と、TextViewのxmlファイル(list_item.xml)はこんな感じのコードです。
[php]
package edu.self.mylistview;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// データを準備
String[] items = {"item 3", "item 4", "item 5"};
// Adapterを準備
ArrayAdapter <String> adapter = new ArrayAdapter<String>(this, R.layout.list_items, items);
// ListViewにAdapterを設置
ListView myListView = (ListView) findViewById(R.id.myListView);
myListView.setAdapter(adapter);
}
}
[/php]
[php]
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:padding ="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
[/php]
simple_list_item_1が文字化け
ArrayAdapterの第2引数である、R.layout list_itemのところ(MainActivity.javaの19行目)を、android.R.layout.simple_list_item_1に変えてみます。
テキストタブを見ると、simple_list_item_1.xmlファイルを見ると、思い切り文字化けしています。
デザインタブに切り替えると、何やらエラーらしき画面が…。
ただし、エミュレーターでの実行画面はちゃんと表示されます。
エラー解決のための対策
Androidのdevelopersドキュメンテーションを見ると、それっぽいことが書かれていますが、
- なぜ文字化けするのか?
- どうやって解決できるのか?
肝心なことは分かりません。以下の方法を試してみましたが、すべてダメでした。この記事に辿り着いた方の、踏み台になれば幸いです。
1.プロジェクトを新しく立ち上げる
使っているプロジェクト特有の現象かと思い、新しいプロジェクトをいくつも立ち上げましたが、ダメでした。
2.Android SDKをアップグレードさせる
Android Studio1.0にアップグレードして間もなく、Android SDKのアップグレードを促す画面が出てきました。画面の指示に従って、SDKをアップグレードをさせてみましたが、これもダメ。関係なかった。
3.sdkフォルダをandroid studioの中に移す
エラーの後ろのほうで、”The following classes could not be found:”で、クラスが読み込めていないと言われています。ですが、Android Studio1.0からsdkフォルダはandroid studioの外に配置させるようになっています。
あえて外に移してみたら、新しいパスを設定するように言われます。両者はなんだか矛盾しているような気がするので、この方法もダメ。
ちなみに…
android.R.simple_list_item1では激しく文字化けがしますが、android.R.layout.simple_list_item2では文字化けは起こりません。
ただしエミュレーターは止まってしまいます。どういうことなんでしょうかね?
〔参考サイト〕