导致 EditText 无法工作的 BaseAdapter
BaseAdapter causing EditText to not work
每当我使用基本适配器将视图添加到画廊时,它会导致视图内的 EditText
不允许文本输入,它聚焦并且键盘出现,但是当我输入文本时它不会'不要出现。 EditText
类型是 numberDecimal
.
我已经尝试将 MainActivity
的内容视图设置为 ap_overview_add
,并且 EditText
工作正常。
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.mwapps.baseadaptertest.MainActivity">
<Gallery
android:id="@+id/gallery1"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="0.6"
android:padding="20dp" />
</RelativeLayout>
ap_overview_add.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:orientation="vertical"
android:id="@+id/ap_overview_add_LL"
android:gravity="center">
<EditText
android:layout_width="match_parent"
android:layout_height="40dp"
android:id="@+id/ap_et_add"
android:inputType="numberDecimal"
android:padding="10dp"
android:backgroundTint="@color/abc_secondary_text_material_light"
android:imeOptions="actionSend"
android:lines="1"
android:maxLines="1"
android:singleLine="true"
android:layout_weight=".75"
android:clickable="true"
android:text="300"
android:focusable="true"
android:focusableInTouchMode="true" />
</LinearLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
Gallery gallery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gallery = (Gallery) findViewById(R.id.gallery1);
gallery.setAdapter(new GalleryImageAdapter(this));
}
}
GalleryImageAdapter.java
public class GalleryImageAdapter extends BaseAdapter {
Context mContext;
LayoutInflater inflater;
public GalleryImageAdapter(Context context)
{
mContext = context;
}
public int getCount() {
return 1;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
// Override this method according to your need
public View getView(int index, View view, ViewGroup viewGroup)
{
// TODO Auto-generated method stub
inflater = LayoutInflater.from(mContext);
View tab;
tab = inflater.inflate(R.layout.ap_overview_add, viewGroup, false);
return tab;
}
}
我看过其他类似的问题,但没有任何效果,包括尝试更改 softinput
模式,导致文本无法输入的原因是什么?
编辑:如果将 inputType 更改为文本,则允许输入
编辑 2:如果 inputtype 设置为 numberDecimal,则无法输入数字,但可以输入逗号之类的东西,所以看起来它不接受数字
您可以按照 developer.android.com/reference/android/widget/Gallery.html 中的建议使用 ViewPager 而不是 Gallery
让它发挥作用
每当我使用基本适配器将视图添加到画廊时,它会导致视图内的 EditText
不允许文本输入,它聚焦并且键盘出现,但是当我输入文本时它不会'不要出现。 EditText
类型是 numberDecimal
.
我已经尝试将 MainActivity
的内容视图设置为 ap_overview_add
,并且 EditText
工作正常。
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.mwapps.baseadaptertest.MainActivity">
<Gallery
android:id="@+id/gallery1"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="0.6"
android:padding="20dp" />
</RelativeLayout>
ap_overview_add.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:orientation="vertical"
android:id="@+id/ap_overview_add_LL"
android:gravity="center">
<EditText
android:layout_width="match_parent"
android:layout_height="40dp"
android:id="@+id/ap_et_add"
android:inputType="numberDecimal"
android:padding="10dp"
android:backgroundTint="@color/abc_secondary_text_material_light"
android:imeOptions="actionSend"
android:lines="1"
android:maxLines="1"
android:singleLine="true"
android:layout_weight=".75"
android:clickable="true"
android:text="300"
android:focusable="true"
android:focusableInTouchMode="true" />
</LinearLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
Gallery gallery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gallery = (Gallery) findViewById(R.id.gallery1);
gallery.setAdapter(new GalleryImageAdapter(this));
}
}
GalleryImageAdapter.java
public class GalleryImageAdapter extends BaseAdapter {
Context mContext;
LayoutInflater inflater;
public GalleryImageAdapter(Context context)
{
mContext = context;
}
public int getCount() {
return 1;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
// Override this method according to your need
public View getView(int index, View view, ViewGroup viewGroup)
{
// TODO Auto-generated method stub
inflater = LayoutInflater.from(mContext);
View tab;
tab = inflater.inflate(R.layout.ap_overview_add, viewGroup, false);
return tab;
}
}
我看过其他类似的问题,但没有任何效果,包括尝试更改 softinput
模式,导致文本无法输入的原因是什么?
编辑:如果将 inputType 更改为文本,则允许输入
编辑 2:如果 inputtype 设置为 numberDecimal,则无法输入数字,但可以输入逗号之类的东西,所以看起来它不接受数字
您可以按照 developer.android.com/reference/android/widget/Gallery.html 中的建议使用 ViewPager 而不是 Gallery 让它发挥作用