【问题标题】:ListView With 2 Button , one button need for FragmentTransactionListView With 2 Button , FragmentTransaction 需要一个按钮
【发布时间】:2019-10-21 20:28:30
【问题描述】:

我是 android 编程新手,我的问题是这个。

我有一个名为(items)的 ListView 和 4 个不同的片段(tableFragment、bedFragment、DeskFragment、ChairFragment),我在其中实现了这个列表。在列表中,我有 2 个具有不同角色的按钮。我想要一个按钮(收藏夹或 ar 无关紧要)从我有列表视图的一个片段到新片段 detailsFragment 进行事务,并将信息(如列表中的图像和文本视图)放在 details_fragment.xml 中。感谢您的努力,谢谢!

items.java    

public class items{

// Name of the object
private String lName;

// Costs
private String lPrice;

// Details
private String lDetails;

// Image resource id
private int lImageId;

// Buttons resource id
private int lButtonF;
private int lButtonAr;


// Constructor
public items(String ObjectName,String ObjectPrice,int ImageResourceId,int ButtonFavorites,int ButtonAr,String DetailsItem){
    lName=ObjectName;
    lPrice=ObjectPrice;
    lImageId=ImageResourceId;
    lButtonAr=ButtonAr;
    lButtonF=ButtonFavorites;
    lDetails=DetailsItem;

}




// Getters
public String getlName() { return lName; }
public String getlPrice(){ return lPrice; }
public int getlImageId(){ return lImageId; }
public int getlButtonF() { return lButtonF; }
public int getlButtonAr() { return lButtonAr; }
public String getlDetails() { return lDetails; }

}

itemsAdapter.java    

public class itemsAdapter extends ArrayAdapter<items>{



private static final String LOG_TAG = itemsAdapter.class.getSimpleName();


public itemsAdapter(Activity context, ArrayList<items> item){
    super(context,0,item);
}


public View getView(int position, View convertView, ViewGroup parent){

    View listItemView = convertView;
    if(listItemView == null) {
        listItemView = LayoutInflater.from(getContext()).inflate(
                R.layout.list_item, parent, false);
    }


    items currentItems=getItem(position);


    TextView nameTextView=(TextView)listItemView.findViewById(R.id.name_item);


    nameTextView.setText(currentItems.getlName());


    TextView priceTextView=(TextView)listItemView.findViewById(R.id.price_item);


    priceTextView.setText(currentItems.getlPrice());


    ImageView iconImageView=(ImageView)listItemView.findViewById(R.id.icon_item);


    iconImageView.setImageResource(currentItems.getlImageId());


    TextView detailsView=(TextView)listItemView.findViewById(R.id.details_item);


    detailsView.setText(currentItems.getlDetails());

    // Favorites and Ar buttons
    Button buttonFavoritesItem=(Button)listItemView.findViewById(R.id.favorites_item);
    buttonFavoritesItem.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

    Button buttonArItem=(Button)listItemView.findViewById(R.id.ar_item);
    buttonArItem.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {

      }
    });

    return listItemView;
}

}

tableFragment.java    


public class tableFragment extends Fragment {


public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.tables_fragment, container, false);

    ArrayList<items> tables=new ArrayList<items>();
    tables.add(new items("Table1","23$",R.drawable.table1,R.id.ar_item,R.id.favorites_item,"Best table on the market, you can drink coffe or study."));
    tables.add(new items("Table2","43$",R.drawable.table2,R.id.ar_item,R.id.favorites_item,"Best table on the market, you can drink coffe or study."));
    tables.add(new items("Table3","54$",R.drawable.table3,R.id.ar_item,R.id.favorites_item,"Best table on the market, you can drink coffe or study."));
    tables.add(new items("Table4","34$",R.drawable.table4,R.id.ar_item,R.id.favorites_item,"Best table on the market, you can drink coffe or study."));
    tables.add(new items("Table5","65$",R.drawable.table5,R.id.ar_item,R.id.favorites_item,"Best table on the market, you can drink coffe or study."));

    itemsAdapter itAdapter=new itemsAdapter(this.getActivity(),tables);

    ListView listView=(ListView)view.findViewById(R.id.listview_tables);
    listView.setAdapter(itAdapter);


    return view;
}

}

detailsFragment.java    

public class detailsFragment extends Fragment {

public detailsFragment(){

}

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.details_fragment, container, false);


    return view;
}

}

details_fragment.xml    

<FrameLayout 
android:layout_width="match_parent"
android:layout_height="500dp"
android:layout_gravity="bottom"
android:id="@+id/details_container">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

    <ImageView
    android:id="@+id/image_view_item"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Name"
    android:textStyle="bold" />

    <TextView
    android:id="@+id/name_view_item"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Details"
    android:textStyle="bold" />

    <TextView
    android:id="@+id/details_view_item"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

        <Button
        android:id="@+id/ar_view_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CAMERA AR" />

        <Button
        android:id="@+id/favorites_view_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="star" />
    </LinearLayout>

</LinearLayout> 
    </FrameLayout>    

【问题讨论】:

    标签: java android android-listview


    【解决方案1】:

    如果你想在片段之间移动数据(图像和文本视图数据),一切都必须通过两个片段的基本活动。我认为不允许在 2 个片段之间直接传输数据(如果错了请纠正我)。

    【讨论】:

    • 我希望在按下按钮时打开另一个片段。关于数据,我正在考虑获取图片 ID、名称、价格和详细信息,并将它们显示在另一个片段中,在该片段中我使用 ImageView 和 3 TextView 进行了另一个布局。
    • 要从现有片段打开新片段,请将其添加到片段中的按钮 onclick 侦听器。片段 newFragment = new (); FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.fragment_container, newFragment); fragmentTransaction.commit();
    猜你喜欢
    • 2016-08-22
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多