如何在用户点击自定义TableView行时弹出2个新按钮?

我正在使用此https://github.com/ISchwarz23/SortableTableView库来显示自定义TableView中的数据。我想要做的是当用户点击表格的一行来弹出2个新按钮(位于行的位置),供用户选择编辑或删除该行。如何在用户点击自定义TableView行时弹出2个新按钮?

FragmentTableUsers.class

public class FragmentTableUsers extends Fragment { 

View v;

ArrayList<User> allUsers;

private static final String[] TABLE_HEADERS = { "Ime", "Prezime"};

public FragmentTableUsers() {

// Required empty public constructor

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

DataBaseHelper helper = new DataBaseHelper(getActivity());

allUsers = helper.getAllUsers();

v = inflater.inflate(R.layout.fragment_fragment_add_user, container, false);

TableView tableView = (TableView<String[]>) v.findViewById(R.id.tableView);

tableView.setColumnCount(2);

tableView.setDataAdapter(new UserTableDataAdapter(getActivity(), allUsers));

SimpleTableHeaderAdapter simpleHeader = new SimpleTableHeaderAdapter(getActivity(), TABLE_HEADERS);

simpleHeader.setTextColor(Color.WHITE);

simpleHeader.setPaddingTop(8);

simpleHeader.setPaddingBottom(8);

tableView.setHeaderAdapter(simpleHeader);

tableView.setHeaderElevation(5);

int colorEvenRows = getResources().getColor(R.color.white);

int colorOddRows = getResources().getColor(R.color.et_grey);

tableView.setDataRowBackgroundProvider(TableDataRowBackgroundProviders.alternatingRowColors(colorEvenRows, colorOddRows));

tableView.addDataClickListener(new UserClickListener());

return v;

}

private class UserClickListener implements TableDataClickListener<User> {

@Override

public void onDataClicked(int rowIndex, User clickedData) {

String clickedCarString = clickedData.getName() + " " + clickedData.getSurname(); // HERE IS CODE WHEN USER CLICK ON ROW

}

}

TableAdapter.class:

class UserTableDataAdapter extends TableDataAdapter<User> { 

public UserTableDataAdapter(Context context, List<User> data) {

super(context, data);

}

@Override

public View getCellView(int rowIndex, int columnIndex, ViewGroup parentView) {

User user = getRowData(rowIndex);

View renderedView = null;

switch (columnIndex) {

case 0:

renderedView = renderUserName(user);

break;

case 1:

renderedView = renderSurName(user);

}

return renderedView;

}

private View renderUserName(final User user) {

return renderString(user.getName());

}

private View renderSurName(final User user) {

return renderString(user.getSurname());

}

private View renderString(final String value) {

final TextView textView = new TextView(getContext());

textView.setText(value);

textView.setTextColor(Color.BLACK);

textView.setPadding(20, 10, 20, 10);

textView.setTextSize(14);

return textView;

}

FragmentTable用户的xml:

<FrameLayout 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="com.group.digit.razvoj.appointment.user.FragmentTableUsers">

<!-- TODO: Update blank fragment layout -->

<LinearLayout

android:id="@+id/mainLayout"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_margin="@dimen/between_margin"

android:orientation="vertical">

<LinearLayout

android:id="@+id/tableViewLaayout"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_marginTop="10dp"

android:layout_weight="1"

android:orientation="vertical">

<de.codecrafters.tableview.TableView xmlns:table="http://schemas.android.com/apk/res-auto"

android:id="@+id/tableView"

android:layout_width="match_parent"

android:layout_height="match_parent"

table:tableView_columnCount="2"

table:tableView_headerColor="@color/cyan" />

</LinearLayout>

</LinearLayout>

回答:

最简单的办法,可能是添加一个onclick监听器,将按钮的属性设置为可见。

以下是我过去如何完成此操作的代码示例。

fab.setOnClickListener(new View.OnClickListener() { 

@Override

public void onClick(View view) {

enrolling=true;

attendance.setVisibility(View.GONE);

lin.setVisibility(View.VISIBLE);

fname.setText("");

lname.setText("");

id_view.setText("Scan Card");

Snackbar.make(view, "Scan To Enroll New User", Snackbar.LENGTH_LONG)

.setAction("Action", null).show();

}

});

.setVisibility(View.*some visibility property*)是你将要行。

以上是 如何在用户点击自定义TableView行时弹出2个新按钮? 的全部内容, 来源链接: utcz.com/qa/257963.html

回到顶部