Android Studio(java)でアプリ開発中です。
アプリ開発は全くの初めてではないのですが、
ほぼそれに近い状態です。
ネットや書籍を購入していろいろ勉強しながらの
開発をしています。
###開発環境
---Android Studio Ver4.2.1 for Windows 64-bit
---Gradle Version 6.7.1
---API 30
###困り事の詳細内容
Viewの配置として
TextInputLayout内にTextInputEditText(id:txti_Staff_No)を配置
TextView(id:txtv_staff_name)
ListView(id:lstv_staff_list)
Button(id:button)
Button(id:button2)
※以下にxml記載しました。
アプリ起動時ListView(id:lstv_staff_list)は非表示状態で
TextView(id:txtv_staff_name)をタップすると
ListView(id:lstv_staff_list)が表示されて
表示したListView(id:lstv_staff_list)で選択された項目を
TextView(id:txtv_staff_name)へ表示するようにしたいと思います。
なので、TextInputEditText(id:txti_Staff_No)にフォーカスが移った場合は
ListView(id:lstv_staff_list)は非表示にしたいのですが
それがうまく動作しません。
発生している問題
①起動直後にTextView(id:txtv_staff_name)をタップ
②ListView(id:lstv_staff_list)が非表示から表示に変更
③TextInputEditText(id:txti_Staff_No)をタップ
この操作をしてもTextInputEditText(id:txti_Staff_No)の
onClickイベントが発生しません。
いろいろと調べて試してみましたが
今のところ何をしてもイベントが発生せずに、
ListView(id:lstv_staff_list)の表示・非表示制御ができずにいます。
該当のソースコード
java
package jp.999.check_sipping;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputType;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import com.google.android.material.textfield.TextInputEditText;
import org.w3c.dom.Text;
import java.util.ArrayList;
public class k20_00_001 extends AppCompatActivity {
ListView lstv_id; private View.OnClickListener lstv_Listener = new View.OnClickListener() { @Override public void onClick(View v) { } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_k20_00_001); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); // リスト項目をテスト用に準備 final ArrayList<String> data = new ArrayList<>(); data.add("Staff1"); data.add("Staff2"); data.add("Staff3"); data.add("Staff4"); data.add("Staff5"); data.add("Staff6"); data.add("Staff7"); data.add("Staff8"); data.add("Staff9"); data.add("Staff10"); data.add("Staff11"); ArrayAdapter<String> adapter = new ArrayAdapter<String >(this, android.R.layout.simple_list_item_1, data); lstv_id = findViewById(R.id.lstv_staff_list); lstv_id.setAdapter(adapter); lstv_id.setVisibility(View.VISIBLE); lstv_id.setVisibility(View.INVISIBLE); } public void onClick_Staff_No(View v) { // ******************************************************** // TextInputEditText(id:txti_Staff_No)をタップした時に以下の処理をしたい。 // ******************************************************** if (lstv_id.getVisibility() == View.VISIBLE) { staff_list_view_check(); } } public void onClick_Staff_Name(View v) { staff_list_view_check(); } public void staff_list_view_check(){ lstv_id = findViewById(R.id.lstv_staff_list); if (lstv_id.getVisibility() != View.VISIBLE) { lstv_id.setVisibility(View.VISIBLE); }else{ lstv_id.setVisibility(View.INVISIBLE); } } public void sign_in_click(View view){ Intent intent = new Intent(this, k20_00_002.class); startActivity(intent); } public void get_shipping_list(View view){ Intent intent = new Intent(this, k20_02_003.class); startActivity(intent); }
}
### 試したこと onCreateでsetOnClickListenerを使用しましたが 同じようにイベントが発生しません。 final TextInputEditText txti_id = findViewById(R.id.txti_Staff_No); txti_id.setOnClickListener(v -> { Log.d("debug", "txti_Staff_No, Perform action on click"); }); ### 補足情報(FW/ツールのバージョンなど) ```xml``` <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".k20_00_001"> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" style="@style/Toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/color4" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:navigationIcon="@drawable/upk_blue_shadow_50_16_" app:title="@string/app_name"> </androidx.appcompat.widget.Toolbar> <com.google.android.material.textfield.TextInputLayout android:id="@+id/txti_Staff_NoLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="5dp" android:layout_marginTop="5dp" android:layout_marginEnd="5dp" android:background="@drawable/shape_style_color1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="@+id/toolbar" app:layout_constraintTop_toBottomOf="@+id/toolbar"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/txti_Staff_No" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/staff_no_hint" android:inputType="text" android:onClick="onClick_Staff_No" android:paddingTop="0dp" android:paddingBottom="5dp" android:textSize="20sp" /> </com.google.android.material.textfield.TextInputLayout> <TextView android:id="@+id/txtv_staff_name" android:layout_width="match_parent" android:layout_height="40dp" android:layout_marginStart="5dp" android:layout_marginTop="5dp" android:layout_marginEnd="5dp" android:background="@drawable/shape_style_color1_border" android:hint="@string/staff_name_hint" android:onClick="onClick_Staff_Name" android:textAlignment="center" android:textColor="@color/color4" android:textColorHint="@color/color40" android:textSize="20sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="@+id/toolbar" app:layout_constraintTop_toBottomOf="@+id/txti_Staff_NoLayout" /> <Button android:id="@+id/button" android:layout_width="270dp" android:layout_height="80dp" android:layout_marginStart="24dp" android:layout_marginTop="20dp" android:layout_marginEnd="24dp" android:background="@drawable/shape_style_color2" android:onClick="sign_in_click" android:stateListAnimator="@null" android:text="@string/sign_in" android:textColor="@color/color4" android:textSize="24sp" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/txtv_staff_name" /> <Button android:id="@+id/button3" android:layout_width="270dp" android:layout_height="100dp" android:layout_marginStart="24dp" android:layout_marginTop="20dp" android:layout_marginEnd="24dp" android:background="@drawable/shape_style_color4" android:onClick="get_shipping_list" android:stateListAnimator="@null" android:text="@string/get_sipping_list" android:textColor="@color/color1" android:textSize="24sp" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/button" /> <ListView android:id="@+id/lstv_staff_list" android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginStart="5dp" android:layout_marginEnd="100dp" android:background="@drawable/shape_style_list_frame_border" android:focusable="auto" android:focusableInTouchMode="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/txtv_staff_name" /> </androidx.constraintlayout.widget.ConstraintLayout>
回答1件
あなたの回答
tips
プレビュー