質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

2回答

1495閲覧

androidにてカルーセルを実装したい

syosinsya109

総合スコア41

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2023/01/27 09:25

前提

androidstudioについて質問します。以下のURLにてカルーセルを実装しようとしたところ、エラーが出てきて動きませんでした。
今までjavaでしか触ったことがなく、kotlinについては全くと言っていいほど分かりません。
このitemのtextってurlのどの部分を参照していますでしょうか。また、
どのようにしたらurlみたいなきれいなカルーセルが実行できますか
https://qiita.com/Nabe1216/items/c765cd9673c0533e4185

実現したいこと

androidにてカルーセルを作成したい

発生している問題・エラーメッセージ

Unresolved reference: text

該当のソースコード

activity_main.xml

1<androidx.constraintlayout.motion.widget.MotionLayout 2 xmlns:android="http://schemas.android.com/apk/res/android xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/motionLayout" android:layout_width="match_parent" android:layout_height="match_parent" app:layoutDescription="@xml/carousel_scene"> 3 <androidx.constraintlayout.helper.widget.Carousel 4 android:id="@+id/carousel" 5 android:layout_width="wrap_content" 6 android:layout_height="wrap_content" 7 app:carousel_backwardTransition="@+id/backward" 8 app:carousel_forwardTransition="@+id/forward" 9 app:carousel_nextState="@+id/next" 10 app:carousel_previousState="@+id/previous" 11 app:carousel_firstView="@+id/textView2" 12 app:constraint_referenced_ids="textView0,textView1,textView2,textView3,textView4" /> 13 14 <TextView 15 android:id="@+id/textView0" 16 android:layout_width="100dp" 17 android:layout_height="100dp" 18 android:layout_marginEnd="16dp" 19 android:text="textView0" 20 app:layout_constraintBottom_toBottomOf="parent" 21 app:layout_constraintEnd_toStartOf="@+id/textView1" 22 app:layout_constraintTop_toTopOf="parent" /> 23 <TextView 24 android:id="@+id/textView1" 25 android:layout_width="100dp" 26 android:layout_height="100dp" 27 android:layout_marginEnd="16dp" 28 android:text="textView1" 29 app:layout_constraintBottom_toBottomOf="parent" 30 app:layout_constraintEnd_toStartOf="@+id/textView2" 31 app:layout_constraintTop_toTopOf="parent" /> 32 33 <TextView 34 android:id="@+id/textView2" 35 android:layout_width="150dp" 36 android:layout_height="150dp" 37 android:text="textView2" 38 app:layout_constraintBottom_toBottomOf="parent" 39 app:layout_constraintEnd_toEndOf="parent" 40 app:layout_constraintHorizontal_bias="0.5" 41 app:layout_constraintStart_toStartOf="parent" 42 app:layout_constraintTop_toTopOf="parent" /> 43 44 <TextView 45 android:id="@+id/textView3" 46 android:layout_width="100dp" 47 android:layout_height="100dp" 48 android:layout_marginStart="16dp" 49 android:text="textView3" 50 app:layout_constraintBottom_toBottomOf="parent" 51 app:layout_constraintStart_toEndOf="@+id/textView2" 52 app:layout_constraintTop_toTopOf="parent" /> 53 <TextView 54 android:id="@+id/textView4" 55 android:layout_width="100dp" 56 android:layout_height="100dp" 57 android:layout_marginStart="16dp" 58 android:text="textView4" 59 app:layout_constraintBottom_toBottomOf="parent" 60 app:layout_constraintStart_toEndOf="@+id/textView3" 61 app:layout_constraintTop_toTopOf="parent" /> 62 63 <androidx.constraintlayout.widget.Guideline 64 android:id="@+id/guideline" 65 android:layout_width="wrap_content" 66 android:layout_height="wrap_content" 67 android:orientation="vertical" 68 app:layout_constraintGuide_begin="100dp" /> 69 <androidx.constraintlayout.widget.Guideline 70 android:id="@+id/guideline2" 71 android:layout_width="wrap_content" 72 android:layout_height="wrap_content" 73 android:orientation="vertical" 74 app:layout_constraintGuide_end="100dp" /> 75</androidx.constraintlayout.motion.widget.MotionLayout>

carousel_scene.xml

1文字数オーバーしたのでurlを参照してください。何もいじっていません

MainActivity.kt

1import androidx.appcompat.app.AppCompatActivity 2import android.os.Bundle 3import android.view.View 4import android.widget.TextView 5import androidx.constraintlayout.helper.widget.Carousel 6 7class MainActivity : AppCompatActivity() { 8 override fun onCreate(savedInstanceState: Bundle?) { 9 super.onCreate(savedInstanceState) 10 setContentView(R.layout.activity_main) 11 12 val carousel = findViewById<Carousel>(R.id.carousel) 13 carousel.setAdapter(object : Carousel.Adapter { 14 val list = arrayOf<Int>(1, 2, 3, 4) 15 override fun count(): Int = list.size 16 17 override fun populate(view: View, index: Int) { 18 if (view !is TextView) return 19 val item = list[index] 20 view.text = item.text 21 } 22 23 override fun onNewItem(index: Int) { 24 } 25 }) 26 } 27}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ConstraintLayout に新しく追加された Carousel を使ってみた を java として動くようにしてみました。

MainActivity.java

java

1import android.graphics.Color; 2import android.os.Bundle; 3import android.view.View; 4import android.widget.TextView; 5 6import androidx.annotation.Nullable; 7import androidx.appcompat.app.AppCompatActivity; 8import androidx.constraintlayout.helper.widget.Carousel; 9 10public class MainActivity extends AppCompatActivity { 11 private static final int[] colors = new int[] { 12 Color.MAGENTA, Color.RED, Color.CYAN, Color.BLUE, 13 Color.GREEN, Color.YELLOW, Color.LTGRAY 14 }; 15 @Override 16 protected void onCreate(@Nullable Bundle savedInstanceState) { 17 super.onCreate(savedInstanceState); 18 setContentView(R.layout.activity_main); 19 20 Carousel carousel = findViewById(R.id.carousel); 21 carousel.setAdapter(new Carousel.Adapter() { 22 @Override public int count() { return colors.length; } 23 @Override public void populate(View view, int index) { 24 if(view instanceof TextView) { 25 view.setBackgroundColor(colors[index]); 26 } 27 } 28 @Override public void onNewItem(int index) {} 29 }); 30 } 31}

res/layout/activity_main.xml

xml

1<?xml version="1.0" encoding="utf-8"?> 2<androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:id="@+id/motionLayout" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 app:layoutDescription="@xml/carousel_scene" 9 tools:context=".MainActivity"> 10 11 <TextView 12 android:id="@+id/textView0" 13 android:layout_width="100dp" 14 android:layout_height="100dp" 15 android:layout_marginEnd="16dp" 16 android:text="textView0" 17 app:layout_constraintBottom_toBottomOf="parent" 18 app:layout_constraintEnd_toStartOf="@+id/textView1" 19 app:layout_constraintTop_toTopOf="parent" /> 20 21 <TextView 22 android:id="@+id/textView1" 23 android:layout_width="100dp" 24 android:layout_height="100dp" 25 android:layout_marginEnd="16dp" 26 android:text="textView1" 27 app:layout_constraintBottom_toBottomOf="parent" 28 app:layout_constraintEnd_toStartOf="@+id/textView2" 29 app:layout_constraintTop_toTopOf="parent" /> 30 31 <TextView 32 android:id="@+id/textView2" 33 android:layout_width="150dp" 34 android:layout_height="150dp" 35 android:layout_margin="0dp" 36 android:text="textView2" 37 app:layout_constraintBottom_toBottomOf="parent" 38 app:layout_constraintEnd_toEndOf="parent" 39 app:layout_constraintStart_toStartOf="parent" 40 app:layout_constraintTop_toTopOf="parent" /> 41 42 <TextView 43 android:id="@+id/textView3" 44 android:layout_width="100dp" 45 android:layout_height="100dp" 46 android:layout_marginStart="16dp" 47 android:text="textView3" 48 app:layout_constraintBottom_toBottomOf="parent" 49 app:layout_constraintStart_toEndOf="@+id/textView2" 50 app:layout_constraintTop_toTopOf="parent" /> 51 52 <TextView 53 android:id="@+id/textView4" 54 android:layout_width="100dp" 55 android:layout_height="100dp" 56 android:layout_marginStart="16dp" 57 android:text="textView4" 58 app:layout_constraintBottom_toBottomOf="parent" 59 app:layout_constraintStart_toEndOf="@+id/textView3" 60 app:layout_constraintTop_toTopOf="parent" /> 61 62 <androidx.constraintlayout.helper.widget.Carousel 63 android:id="@+id/carousel" 64 android:layout_width="wrap_content" 65 android:layout_height="wrap_content" 66 app:carousel_backwardTransition="@+id/backward" 67 app:carousel_firstView="@+id/textView2" 68 app:carousel_forwardTransition="@+id/forward" 69 app:carousel_nextState="@+id/next" 70 app:carousel_previousState="@+id/previous" 71 app:constraint_referenced_ids="textView0,textView1,textView2,textView3,textView4" /> 72 73</androidx.constraintlayout.motion.widget.MotionLayout>

res/xml/carousel_scene.xml

xml

1<?xml version="1.0" encoding="utf-8"?> 2<MotionScene xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:motion="http://schemas.android.com/apk/res-auto"> 4 5 <Transition 6 android:id="@+id/forward" 7 motion:constraintSetEnd="@+id/next" 8 motion:constraintSetStart="@id/base_state"> 9 <OnSwipe 10 motion:dragDirection="dragLeft" 11 motion:touchAnchorSide="left" /> 12 </Transition> 13 14 <Transition 15 android:id="@+id/backward" 16 motion:constraintSetEnd="@+id/previous" 17 motion:constraintSetStart="@+id/base_state"> 18 <OnSwipe 19 motion:dragDirection="dragRight" 20 motion:touchAnchorSide="right" /> 21 </Transition> 22 23 <ConstraintSet android:id="@+id/base_state"> 24 <Constraint 25 android:id="@+id/textView1" 26 android:layout_width="100dp" 27 android:layout_height="100dp" 28 android:layout_marginEnd="16dp" 29 motion:layout_constraintBottom_toBottomOf="parent" 30 motion:layout_constraintEnd_toStartOf="@id/textView2" 31 motion:layout_constraintTop_toTopOf="parent" /> 32 <Constraint 33 android:id="@+id/textView2" 34 android:layout_width="150dp" 35 android:layout_height="150dp" 36 motion:layout_constraintBottom_toBottomOf="parent" 37 motion:layout_constraintEnd_toEndOf="parent" 38 motion:layout_constraintStart_toStartOf="parent" 39 motion:layout_constraintTop_toTopOf="parent" /> 40 <Constraint 41 android:id="@+id/textView3" 42 android:layout_width="100dp" 43 android:layout_height="100dp" 44 android:layout_marginStart="16dp" 45 motion:layout_constraintBottom_toBottomOf="parent" 46 motion:layout_constraintStart_toEndOf="@id/textView2" 47 motion:layout_constraintTop_toTopOf="parent" /> 48 </ConstraintSet> 49 50 <ConstraintSet android:id="@+id/next"> 51 <Constraint 52 android:id="@+id/textView2" 53 android:layout_width="100dp" 54 android:layout_height="100dp" 55 android:layout_marginEnd="16dp" 56 motion:layout_constraintBottom_toBottomOf="parent" 57 motion:layout_constraintEnd_toStartOf="@id/textView3" 58 motion:layout_constraintTop_toTopOf="parent" /> 59 <Constraint 60 android:id="@+id/textView3" 61 android:layout_width="150dp" 62 android:layout_height="150dp" 63 motion:layout_constraintBottom_toBottomOf="parent" 64 motion:layout_constraintEnd_toEndOf="parent" 65 motion:layout_constraintStart_toStartOf="parent" 66 motion:layout_constraintTop_toTopOf="parent" /> 67 <Constraint 68 android:id="@+id/textView4" 69 android:layout_width="100dp" 70 android:layout_height="100dp" 71 android:layout_marginStart="16dp" 72 motion:layout_constraintBottom_toBottomOf="parent" 73 motion:layout_constraintStart_toEndOf="@id/textView3" 74 motion:layout_constraintTop_toTopOf="parent" /> 75 </ConstraintSet> 76 77 <ConstraintSet android:id="@+id/previous"> 78 <Constraint 79 android:id="@+id/textView0" 80 android:layout_width="100dp" 81 android:layout_height="100dp" 82 android:layout_marginEnd="16dp" 83 motion:layout_constraintBottom_toBottomOf="parent" 84 motion:layout_constraintEnd_toStartOf="@id/textView1" 85 motion:layout_constraintTop_toTopOf="parent" /> 86 <Constraint 87 android:id="@+id/textView1" 88 android:layout_width="150dp" 89 android:layout_height="150dp" 90 motion:layout_constraintBottom_toBottomOf="parent" 91 motion:layout_constraintEnd_toEndOf="parent" 92 motion:layout_constraintStart_toStartOf="parent" 93 motion:layout_constraintTop_toTopOf="parent" /> 94 <Constraint 95 android:id="@+id/textView2" 96 android:layout_width="100dp" 97 android:layout_height="100dp" 98 android:layout_marginStart="16dp" 99 motion:layout_constraintBottom_toBottomOf="parent" 100 motion:layout_constraintStart_toEndOf="@id/textView1" 101 motion:layout_constraintTop_toTopOf="parent" /> 102 </ConstraintSet> 103</MotionScene>

投稿2023/06/11 09:59

jimbe

総合スコア12632

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

以下抜粋ですが、listの要素は数値ですから、.text プロパティは取得できないということでしょう。

kotlin

1 val list = arrayOf<Int>(1, 2, 3, 4) 2 val item = list[index] 3 view.text = item.text

投稿2023/01/27 09:29

TakaiY

総合スコア12745

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syosinsya109

2023/01/27 12:14

回答ありがとうございます。 張り付けていたurlにはlist配列がありませんでした。 リスト配列はどのように定義すればいいのでしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問