簡體   English   中英

活動中的Android Studio名稱標簽

[英]Android studio name tabs in activity

我有一個editText,用戶可以在其中選擇2到8之間的一個數字。例如,如果用戶選擇5,那么我想在同一活動中顯示5個新的editText。 我怎樣才能做到這一點? 我發現片段可以通過某種方式實現,但直到現在我都沒有找到非常有用的教程。

采取ScrollView。 在ScrollView中,您可以使用LinearLayout。 以編程方式,如果用戶輸入n個數字,則循環到n個。 在循環中,以實用的方式創建一個新的EditText,然后使用myLayout.addView(myEditText)將其添加到linearlayout中。

就像@kumud kala所說的那樣,在Scrollview中添加一個線性布局,然后您可以像這樣以編程方式創建一個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);

如果要更多editText,可以初始化一個EditText Array,然后循環遍歷EditText的數量。

將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;
 }
  });

現在,使適配器類不添加您填充的edittext:

  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);
    }

}
  }

itemlayoutforedittext.xml

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM