プロが教える店舗&オフィスのセキュリティ対策術

初のアンドロイドアプリ作成に挑戦しています。

Androidスタジオは、キリンバージョンです。
Android21以上をカバーするモードでプロジェクトを作成しました。

MainActivity.ktに、
package com.websarva.wings.android.myapplication

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.websarva.wings.android.myapplication.ui.theme.MyApplicationTheme

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyApplicationTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Greeting("Android")
}
}
}
}
}

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
MyApplicationTheme {
Greeting("Android")
}
}

と書かれています。これにより、Hello Androidが表示されているというのはなんとなくわかります。

続いて、参考書に書かれている通りに、
res/values/strings.xml
に、下記内容を記入。
<resources>
<string name="app_name">画面部品サンプル</string>
<string name="tv_msg">お名前を入力してください。</string>
</resources>

参考書の指示、res/layoutフォルダがないので、新規作成。
その下に、axtivity?main.xmlをテキストファイルで新規作成し、その中に下記の内容を記入しました。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#a1a9ba"
android:orientation="vertical" >
<TextView
android:id="@+id/tvlobelInput"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginTop="8dp"
android:background="#ffffff"
android:text="@string/tv_msg"
android:textSize="24sp"/>
</LinearLayout>

これでエミュレーターにて実行しましたが、「画面部品サンプル」「お名前を入力してください。」(★)は表示されず、Hello Andorid!のみが表示されます。

どうやったら、★部分が表示されるようになるでしょうか。

質問者からの補足コメント

  • 申し訳ないです。先に書いたお礼の内容はこちらのミスで、訂正しました。

    いただいた内容を追加しましたが、色々と問題が出ているので、やるべきことを調べてみます。

    お手数をお掛けして申し訳ないです。

    ありがとうございました。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/08/03 08:14

A 回答 (1件)

問題を解決するためには、MainActivity.ktでTextViewを追加して、@string/tv_msgに対応するテキストを表示する必要があります。



MainActivity.ktに以下のコードを追加してみてください。

kotlin
Copy code
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyApplicationTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Column(
modifier = Modifier.padding(16.dp),
verticalArrangement = Arrangement.Center
) {
Greeting("Android")
Spacer(modifier = Modifier.height(16.dp))
Text(
text = stringResource(id = R.string.tv_msg),
style = MaterialTheme.typography.h5
)
}
}
}
}
}
}
上記のコードでは、Columnを使ってGreetingの下に新しいTextViewを追加しています。そのTextViewのテキストはstringResourceを使用してR.string.tv_msgに対応する文字列を取得しています。

また、必要に応じてimport文を追加することも忘れずにしてください。

これにより、エミュレーター上で「Hello Android!」と「お名前を入力してください。」が表示されるはずです。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。
Android resource linking failed
com.websarva.wings.android.myapplication.app-main-46:/layout/activity_main.xml:9: error: resource string/table_layout_4_open (aka com.websarva.wings.android.myapplication:string/table_layout_4_open) not found.
com.websarva.wings.android.myapplication.app-main-46:/layout/activity_main.xml:13: error: resource string/table_layout_4_open_shortcut (aka com.websarva.wings.android.myapplication:string/table_layout_4_open_shortcut) not found.
com.websarva.wings.android.myapplication.app-main-46:/layout/activity_main.xml:19: error: resource string/table_layout_4_save (aka com.websarva.wings.android.myapplication:string/table_layout_4_save) not found.
com.websarva.wings.android.myapplication.app-main-46:/layout/activity_main.xml:23: error: resource string/table_layout_4_save_shortcut (aka com.websarva.wings.android.myapplication:string/table_layout_4_save_shortcut) not found.
error: failed linking file resources.

追加しただけだと、エラーが出てしまいました。調整、やってみます。

お礼日時:2023/08/03 07:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!