活动中的安卓工作室名称选项卡



我有一个editText,用户可以在其中选择2到8之间的数字。例如,如果用户选择了 5,那么我想在同一活动中显示 5 个新的编辑文本。我该怎么做?我发现片段在某种程度上是可能的,但直到现在我才找到一个非常有用的教程。

正如@kumud卡拉所说 在滚动视图中添加线性布局,然后您可以像这样以编程方式创建 EditText。

LineLinearLayout llayout = findViewById(R.id.yourlinearlayout);
EditText yourEditText= new EditText(this);
yourEditText.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
llayout.addView(yourEditText);

如果你想要更多的编辑文本,你可以初始化一个编辑文本数组,然后循环访问编辑文本的数量

进行滚动查看。在ScrollView中,你有一个LinearLayout。以编程方式,如果用户输入 n 个数字,则循环最多为 n。在循环中,按照语法方式创建一个新的 EditText,并使用 myLayout.addView(myEditText( 添加到线性布局中。

将 edittext & recyclerview 放在activity_main.xml文件中:

<EditText
android:id="@+id/search_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:singleLine="true"
android:imeOptions="actionDone" />
<android.support.v7.widget.RecyclerView
android:animateLayoutChanges="false"
android:id="@+id/explore_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />

然后去它的Java类

EditText edit_txt = (EditText) findViewById(R.id.search_edit);
edit_txt.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
exploreTopDownRecyler.setDrawingCacheEnabled(true);
exploreTopDownRecyler.setHasFixedSize(true);
exploreTopDownRecyler.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_AUTO);
exploreTopDownRecyler.setLayoutManager(new LinearLayoutManager(context));
exploreTopDownRecyler.setAdapter(ExploreTopDownAdapter.getInstance(context));
topDownAdapter = ExploreTopDownAdapter.getInstance(context);
topDownAdapter.addExploreItem(edit_txt.getText().toString());
return true;
}
return false;
}
});

现在使适配器类添加您填写的编辑文本:

public class ExploreTopDownAdapter extends RecyclerView.Adapter<ExploreTopDownAdapter.ExploreItemRowViewHolder> {
String TAG = ExploreTopDownAdapter.class.getSimpleName();
int count = 0;
private int mLastAnimatedItemPosition = -1;
private static Context context;
private static ExploreTopDownAdapter mInstance;

public ExploreTopDownAdapter(Context context) {
this.context = context;
}
public static ExploreTopDownAdapter getInstance(Context context2) {
if (mInstance == null) {
mInstance = new ExploreTopDownAdapter(context2);
}
context = context2;
return mInstance;
}
public void addExploreItem(String item) {
count = Integer.parseInt(item);
notifyDataSetChanged();
}
private void animateItem(View view) {
}
@Override
public ExploreItemRowViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
context= parent.getContext();
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.itemlayoutforedittext, null, false);
return new ExploreItemRowViewHolder(view);
}
@Override
public void onBindViewHolder(ExploreItemRowViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return count;
}

public static class ExploreItemRowViewHolder extends RecyclerView.ViewHolder {

EditText edittext;

public ExploreItemRowViewHolder(View itemView) {
super(itemView);
edittext = (EditText) itemView.findViewById(R.id.edit);
}
}
}

项目布局编辑文本.xml

<EditText
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
/>

最新更新