簡體   English   中英

Cardview與editText和Recyclerview

[英]Cardview with editText and Recyclerview

我不太擅長android編程。 我可以使用cardview和recyclerview進行此布局。

但是我需要為每個帶有editText的卡設置2個偵聽器。 一個OnFocusChange偵聽器和一個OnTextChange偵聽器。 而且我必須獲取每個editText的文本。 我該怎么辦? 這是我當前的代碼:

賓語:

public class unitObject {

private String mtitle;
private String mhint;

unitObject(String title, String hint){
    mtitle=title;
    mhint=hint;
}
public String getMtitle() {
    return mtitle;
}

public String getMhint() {
    return mhint;
}

public void setMtitle(String mtitle) {
    this.mtitle = mtitle;
}

public void setMhint(String mhint) {
    this.mhint = mhint;
}
}

回收站適配器:

public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.DataObjectHolder> {
private static String LOG_TAG = "MyRecyclerViewAdapter";
private ArrayList<unitObject> mDataset;
private static MyClickListener myClickListener;

public static class DataObjectHolder extends RecyclerView.ViewHolder
        implements View
        .OnClickListener {
    TextView title;
    TextView ET_hint;
    String content;

    public DataObjectHolder(View itemView) {
        super(itemView);
        title = (TextView) itemView.findViewById(R.id.textView);
        ET_hint = (TextView) itemView.findViewById(R.id.editText);
        Log.i(LOG_TAG, "Adding Listener");
        itemView.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        myClickListener.onItemClick(getAdapterPosition(), v);
    }
}



public MyRecyclerViewAdapter(ArrayList<unitObject> myDataset) {
    mDataset = myDataset;
}

@Override
public DataObjectHolder onCreateViewHolder(ViewGroup parent,
                                           int viewType) {
    View view = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.card_view_row, parent, false);

    DataObjectHolder dataObjectHolder = new DataObjectHolder(view);
    return dataObjectHolder;
}

@Override
public void onBindViewHolder(DataObjectHolder holder, int position) {
    holder.title.setText(mDataset.get(position).getMtitle());
    holder.ET_hint.setHint(mDataset.get(position).getMhint());
}



@Override
public int getItemCount() {
    return mDataset.size();
}

public interface MyClickListener {
    public void onItemClick(int position, View v);
}

班級

public class classic_conversion extends AppCompatActivity {

private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.classic_conversion_layout);

    mRecyclerView =  findViewById(R.id.my_recycler_view);
    mRecyclerView.setHasFixedSize(true);
    mLayoutManager = new LinearLayoutManager(this);
    mRecyclerView.setLayoutManager(mLayoutManager);
    mAdapter = new MyRecyclerViewAdapter(getDataSet());
    mRecyclerView.setAdapter(mAdapter);
}
private ArrayList<unitObject> getDataSet() {
    ArrayList results = new ArrayList<unitObject>();
    results.add(new unitObject("Title 1","hint 1"));
    results.add(new unitObject("Title 2","hint 2"));
    results.add(new unitObject("Title 3","hint 3"));
    return results;
}
}

提前致謝!

對於偵聽器editText:

yourEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            //BEFORE TEXT CHANGED
        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        // WHILE TEXT IS CHANGE
        }

        @Override
        public void afterTextChanged(Editable editable) {
            //AFTER TEXT CHANGED (LIKE YOU PRESS ENTER AFTER TYPING)

        }
    });

改變聽眾的注意力。

yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean hasFocus) {

            if (hasFocus){
                //DO WHAT YOU NEED WHEN editText HAS FOCUS
            }
            else {
                //DO WHAT YOU NEED WHEN editText HAS NO FOCUS
            }

        }
    });

我真的希望這對您有所幫助,對於您的延遲回復深表歉意。

暫無
暫無

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

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