{"id":1278,"date":"2025-05-15T05:50:42","date_gmt":"2025-05-14T20:50:42","guid":{"rendered":"https:\/\/itstudy365.com\/blog\/?p=1278"},"modified":"2025-05-26T18:01:32","modified_gmt":"2025-05-26T09:01:32","slug":"android-application-development-%e7%ac%ac15%e7%ab%a0%ef%bc%9a%e3%83%aa%e3%82%b9%e3%83%88%e3%81%ae%e3%82%af%e3%83%aa%e3%83%83%e3%82%af%e5%87%a6%e7%90%86%e3%81%a8%e7%94%bb%e9%9d%a2%e9%81%b7%e7%a7%bb","status":"publish","type":"post","link":"https:\/\/itstudy365.com\/blog\/2025\/05\/15\/android-application-development-%e7%ac%ac15%e7%ab%a0%ef%bc%9a%e3%83%aa%e3%82%b9%e3%83%88%e3%81%ae%e3%82%af%e3%83%aa%e3%83%83%e3%82%af%e5%87%a6%e7%90%86%e3%81%a8%e7%94%bb%e9%9d%a2%e9%81%b7%e7%a7%bb\/","title":{"rendered":"Android application development \u7b2c15\u7ae0\uff1a\u30ea\u30b9\u30c8\u306e\u30af\u30ea\u30c3\u30af\u51e6\u7406\u3068\u753b\u9762\u9077\u79fb"},"content":{"rendered":"\n<button id=\"bb1\" type=\"button\" value=\"Play\" class=\"responsivevoice-button\" title=\"ResponsiveVoice Tap to Start\/Stop Speech\"><span>&#128266; Play<\/span><\/button>\n        <script>\n            bb1.onclick = function(){\n                if(responsiveVoice.isPlaying()){\n                    responsiveVoice.cancel();\n                }else{\n                    responsiveVoice.speak(\"\u30ea\u30b9\u30c8\u306e\u30a2\u30a4\u30c6\u30e0\u3092\u30af\u30ea\u30c3\u30af\u3057\u305f\u3089 \u5225\u306e\u753b\u9762\uff08Activity\uff09\u306b\u9077\u79fb\u3057 \u30af\u30ea\u30c3\u30af\u3057\u305f\u30c7\u30fc\u30bf\u3092\u6b21\u306e\u753b\u9762\u306b\u6e21\u3059 \u3068\u3044\u3046\u4e00\u9023\u306e\u51e6\u7406\u3092\u5b66\u3073\u307e\u3059\u3002 \ud83e\udde9 \u307e\u305a\u306f\u5168\u4f53\u50cf RecyclerView \u3084 ListView \u3092\u753b\u9762\u306b\u8868\u793a \u5404\u884c\u306b\u30af\u30ea\u30c3\u30af\u30ea\u30b9\u30ca\u30fc\u3092\u8a2d\u5b9a \u30af\u30ea\u30c3\u30af\u6642\u306b Intent \u3067\u5225\u306e Activity \u3092\u8d77\u52d5 Intent.putExtra() \u3067\u30c7\u30fc\u30bf\u3092\u6e21\u3059 \u9077\u79fb\u5148\u306e Activity \u3067 getIntent().getStringExtra(...) \u306a\u3069\u3067\u53d7\u3051\u53d6\u308b \ud83d\udd27 RecyclerView\u306b\u30af\u30ea\u30c3\u30af\u30ea\u30b9\u30ca\u30fc\u3092\u4ed8\u3051\u308b Adapter \u5185\u3067\u30af\u30ea\u30c3\u30af\u51e6\u7406\u3092\u5b9a\u7fa9\u3059\u308b\u306e\u304c\u4e00\u822c\u7684\u3067\u3059\u3002 public class MyAdapter extends RecyclerView.Adapterless thanMyAdapter.ViewHoldergreater than { private Listless thanStringgreater than dataList; private Context context; public MyAdapter(Context context, Listless thanStringgreater than list) { this.context = context; this.dataList = list; } @NonNull @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(android.R.layout.simple_list_item_1, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { String item = dataList.get(position); holder.textView.setText(item); \/\/ \u2705 \u30af\u30ea\u30c3\u30af\u51e6\u7406\u306e\u8ffd\u52a0 holder.itemView.setOnClickListener(v -greater than { Intent intent = new Intent(context, DetailActivity.class); intent.putExtra(\\\"item_name\\\", item); context.startActivity(intent); }); } @Override public int getItemCount() { return dataList.size(); } public static class ViewHolder extends RecyclerView.ViewHolder { public TextView textView; public ViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(android.R.id.text1); } } } \ud83d\udcf1 \u9077\u79fb\u5148\u306e DetailActivity \u306e\u30b3\u30fc\u30c9\u4f8b public class DetailActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail); TextView detailText = findViewById(R.id.detailText); \/\/ \u2705 Intent\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d6\u5f97 String itemName = getIntent().getStringExtra(\\\"item_name\\\"); detailText.setText(\\\"\u9078\u629e\u3055\u308c\u305f\u30a2\u30a4\u30c6\u30e0: \\\" + itemName); } } \ud83e\uddfe AndroidManifest.xml \u306b\u9077\u79fb\u5148\u3092\u767b\u9332\u3059\u308b\u306e\u3082\u5fd8\u308c\u305a\u306b\uff01 less thanactivity android:name=\\\".DetailActivity\\\" \/greater than \ud83d\udca1 \u6ce8\u610f\u70b9\uff1aContext\u306b\u3064\u3044\u3066 RecyclerView\u306e\u5185\u90e8\u306f Activity \u3067\u306f\u306a\u3044\u306e\u3067\u3001startActivity() \u3059\u308b\u306b\u306f Context \u304c\u5fc5\u8981\u3067\u3059\u3002\u2192 Adapter \u306b Context \u3092\u6e21\u3059 or itemView.getContext() \u3092\u4f7f\u3046\u3053\u3068\u3067\u89e3\u6c7a\u3067\u304d\u307e\u3059\u3002 \u2705 \u307e\u3068\u3081 \u8981\u7d20\u8aac\u660esetOnClickListener()\u5404\u30a2\u30a4\u30c6\u30e0\u306b\u30af\u30ea\u30c3\u30af\u51e6\u7406\u3092\u8a2d\u5b9aIntent\u753b\u9762\u9077\u79fb\u306e\u624b\u6bb5putExtra() \/ getStringExtra()\u30c7\u30fc\u30bf\u306e\u53d7\u3051\u6e21\u3057ContextstartActivity() \u306b\u306f\u5fc5\u9808\u3002Adapter\u5185\u3067\u6c17\u3092\u3064\u3051\u308b\u30dd\u30a4\u30f3\u30c8 \ud83e\uddea \u5fdc\u7528\uff08\u77e5\u3063\u3066\u304a\u304f\u3068\u826f\u3044\uff09 \u8907\u6570\u306e\u5024\u3092\u6e21\u3057\u305f\u3044 \u2192 putExtra() \u3092\u8907\u6570\u56de or Bundle \u306b\u307e\u3068\u3081\u308b \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u6e21\u3057\u305f\u3044 \u2192 Serializable or Parcelable \u3092\u4f7f\u3046\", \"Japanese Female\");\n                }\n            };\n        <\/script>\n    <\/p>\n\n\n\n<ul>\n<li>\u30ea\u30b9\u30c8\u306e\u30a2\u30a4\u30c6\u30e0\u3092\u30af\u30ea\u30c3\u30af\u3057\u305f\u3089<\/li>\n\n\n\n<li><strong>\u5225\u306e\u753b\u9762\uff08Activity\uff09\u306b\u9077\u79fb<\/strong>\u3057<\/li>\n\n\n\n<li><strong>\u30af\u30ea\u30c3\u30af\u3057\u305f\u30c7\u30fc\u30bf\u3092\u6b21\u306e\u753b\u9762\u306b\u6e21\u3059<\/strong><\/li>\n<\/ul>\n\n\n\n<p>\u3068\u3044\u3046\u4e00\u9023\u306e\u51e6\u7406\u3092\u5b66\u3073\u307e\u3059\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde9 \u307e\u305a\u306f\u5168\u4f53\u50cf<\/h2>\n\n\n\n<ol>\n<li><code>RecyclerView<\/code> \u3084 <code>ListView<\/code> \u3092\u753b\u9762\u306b\u8868\u793a<\/li>\n\n\n\n<li>\u5404\u884c\u306b\u30af\u30ea\u30c3\u30af\u30ea\u30b9\u30ca\u30fc\u3092\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u30af\u30ea\u30c3\u30af\u6642\u306b <code>Intent<\/code> \u3067\u5225\u306e <code>Activity<\/code> \u3092\u8d77\u52d5<\/li>\n\n\n\n<li><code>Intent.putExtra()<\/code> \u3067\u30c7\u30fc\u30bf\u3092\u6e21\u3059<\/li>\n\n\n\n<li>\u9077\u79fb\u5148\u306e <code>Activity<\/code> \u3067 <code>getIntent().getStringExtra(...)<\/code> \u306a\u3069\u3067\u53d7\u3051\u53d6\u308b<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd27 RecyclerView\u306b\u30af\u30ea\u30c3\u30af\u30ea\u30b9\u30ca\u30fc\u3092\u4ed8\u3051\u308b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><code>Adapter<\/code> \u5185\u3067\u30af\u30ea\u30c3\u30af\u51e6\u7406\u3092\u5b9a\u7fa9\u3059\u308b\u306e\u304c\u4e00\u822c\u7684\u3067\u3059\u3002<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-lang=\"C#\" data-show-lang=\"0\"><code>public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder&gt; {\n    private List&lt;String&gt; dataList;\n    private Context context;\n\n    public MyAdapter(Context context, List&lt;String&gt; list) {\n        this.context = context;\n        this.dataList = list;\n    }\n\n    @NonNull\n    @Override\n    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {\n        View view = LayoutInflater.from(parent.getContext())\n                     .inflate(android.R.layout.simple_list_item_1, parent, false);\n        return new ViewHolder(view);\n    }\n\n    @Override\n    public void onBindViewHolder(ViewHolder holder, int position) {\n        String item = dataList.get(position);\n        holder.textView.setText(item);\n\n        \/\/ \u2705 \u30af\u30ea\u30c3\u30af\u51e6\u7406\u306e\u8ffd\u52a0\n        holder.itemView.setOnClickListener(v -&gt; {\n            Intent intent = new Intent(context, DetailActivity.class);\n            intent.putExtra(&quot;item_name&quot;, item);\n            context.startActivity(intent);\n        });\n    }\n\n    @Override\n    public int getItemCount() {\n        return dataList.size();\n    }\n\n    public static class ViewHolder extends RecyclerView.ViewHolder {\n        public TextView textView;\n        public ViewHolder(View itemView) {\n            super(itemView);\n            textView = itemView.findViewById(android.R.id.text1);\n        }\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcf1 \u9077\u79fb\u5148\u306e <code>DetailActivity<\/code> \u306e\u30b3\u30fc\u30c9\u4f8b<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-lang=\"C#\" data-show-lang=\"0\"><code>public class DetailActivity extends AppCompatActivity {\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_detail);\n\n        TextView detailText = findViewById(R.id.detailText);\n\n        \/\/ \u2705 Intent\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\n        String itemName = getIntent().getStringExtra(&quot;item_name&quot;);\n\n        detailText.setText(&quot;\u9078\u629e\u3055\u308c\u305f\u30a2\u30a4\u30c6\u30e0: &quot; + itemName);\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83e\uddfe AndroidManifest.xml \u306b\u9077\u79fb\u5148\u3092\u767b\u9332\u3059\u308b\u306e\u3082\u5fd8\u308c\u305a\u306b\uff01<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-lang=\"C#\" data-show-lang=\"0\"><code>&lt;activity android:name=&quot;.DetailActivity&quot; \/&gt;<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udca1 \u6ce8\u610f\u70b9\uff1aContext\u306b\u3064\u3044\u3066<\/h2>\n\n\n\n<p>RecyclerView\u306e\u5185\u90e8\u306f <code>Activity<\/code> \u3067\u306f\u306a\u3044\u306e\u3067\u3001<br><code>startActivity()<\/code> \u3059\u308b\u306b\u306f <code>Context<\/code> \u304c\u5fc5\u8981\u3067\u3059\u3002<br>\u2192 <code>Adapter<\/code> \u306b <code>Context<\/code> \u3092\u6e21\u3059 or <code>itemView.getContext()<\/code> \u3092\u4f7f\u3046\u3053\u3068\u3067\u89e3\u6c7a\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 \u307e\u3068\u3081<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u8981\u7d20<\/th><th>\u8aac\u660e<\/th><\/tr><\/thead><tbody><tr><td><code>setOnClickListener()<\/code><\/td><td>\u5404\u30a2\u30a4\u30c6\u30e0\u306b\u30af\u30ea\u30c3\u30af\u51e6\u7406\u3092\u8a2d\u5b9a<\/td><\/tr><tr><td><code>Intent<\/code><\/td><td>\u753b\u9762\u9077\u79fb\u306e\u624b\u6bb5<\/td><\/tr><tr><td><code>putExtra()<\/code> \/ <code>getStringExtra()<\/code><\/td><td>\u30c7\u30fc\u30bf\u306e\u53d7\u3051\u6e21\u3057<\/td><\/tr><tr><td><code>Context<\/code><\/td><td><code>startActivity()<\/code> \u306b\u306f\u5fc5\u9808\u3002Adapter\u5185\u3067\u6c17\u3092\u3064\u3051\u308b\u30dd\u30a4\u30f3\u30c8<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddea \u5fdc\u7528\uff08\u77e5\u3063\u3066\u304a\u304f\u3068\u826f\u3044\uff09<\/h2>\n\n\n\n<ul>\n<li>\u8907\u6570\u306e\u5024\u3092\u6e21\u3057\u305f\u3044 \u2192 <code>putExtra()<\/code> \u3092\u8907\u6570\u56de or <code>Bundle<\/code> \u306b\u307e\u3068\u3081\u308b<\/li>\n\n\n\n<li>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u6e21\u3057\u305f\u3044 \u2192 <code>Serializable<\/code> or <code>Parcelable<\/code> \u3092\u4f7f\u3046<\/li>\n<\/ul>\n\n\n\n<p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[54],"_links":{"self":[{"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/posts\/1278"}],"collection":[{"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/comments?post=1278"}],"version-history":[{"count":2,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/posts\/1278\/revisions"}],"predecessor-version":[{"id":1369,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/posts\/1278\/revisions\/1369"}],"wp:attachment":[{"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/media?parent=1278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/categories?post=1278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/tags?post=1278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}