这里我附上了设计的截图。我真的很困惑如何使用listview
在布局中设计textview
。
这是我的列表
的xml布局<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/order"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<include
layout="@layout/app_toolbar_conformation"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:orientation="vertical"
android:background="#FFFFFF"
android:id="@+id/lin">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="10dp"
android:orientation="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="90dp"
android:orientation="vertical"
android:layout_marginTop="38dp"
android:background="@drawable/layout_bg1"
android:layout_alignParentEnd="true"
android:weightSum="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="horizontal"
android:id="@+id/relativeLayout10"
android:weightSum="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Product"
android:layout_margin="5dp"
android:textSize="12dp"
android:textColor="#000000"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Qty"
android:textSize="10dp"
android:layout_marginTop="10dp"
android:layout_margin="5dp"
android:textColor="#000000"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Price"
android:textSize="10dp"
android:layout_margin="5dp"
android:layout_marginTop="5dp"
android:textColor="#000000"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SubTotal"
android:textSize="10dp"
android:layout_margin="5dp"
android:layout_marginTop="5dp"
android:textColor="#000000"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tax"
android:textSize="10dp"
android:layout_margin="5dp"
android:layout_marginTop="5dp"
android:textColor="#000000"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Discount"
android:textSize="10dp"
android:layout_margin="5dp"
android:layout_marginTop="5dp"
android:textColor="#000000"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RowTotal"
android:textSize="10dp"
android:layout_margin="5dp"
android:layout_marginTop="5dp"
android:textColor="#000000"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/relativeLayout10"
android:orientation ="horizontal"
android:id="@+id/Layout11"
android:weightSum="1">
<ListView //here i create a list view
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
<Button
android:id="@+id/btn_placeorder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:background="@color/colorPrimaryCustom"
android:text="Place Order"
android:textColor="#fff" />
</LinearLayout>
</ScrollView>
</LinearLayout>
列表视图文本文件的另一个xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="55dp"//these are the some textfields which I want to display in the `listview`
android:layout_height="40dp"
android:text="Surdines"
android:id="@+id/productname"
android:layout_margin="5dp"
android:layout_marginTop="15dp"
android:textSize="12dp"
android:textColor="#000000"
android:weightSum="1"
/>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6"
android:id="@+id/discount"
android:textSize="10dp"
android:weightSum="1"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:textColor="#000000"
/>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6"
android:id="@+id/rowtotal"
android:textSize="10dp"
android:weightSum="1"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:textColor="#000000"/>
</LinearLayout>
如果有人知道请解释如何设计xml。我不知道如何设计它。我使用json
对象显示单个产品的文本字段值,但如果我想购买更多产品,则此情况不起作用。
答案 0 :(得分:0)
像这个列表项可能有帮助
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:minHeight="?android:attr/listPreferredItemHeight">
<TextView
android:id="@+id/productname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_marginTop="15dp"
android:text="Surdines"
android:textColor="#545454"
android:textSize="18sp"
android:weightSum="1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<TextView
android:id="@+id/discount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:layout_weight="1"
android:text="6%"
android:textColor="#ff7733"
android:textSize="12sp" />
<TextView
android:id="@+id/rowtotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:layout_weight="1"
android:text="6 remaining"
android:textColor="#ff9988"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
然后在你的java代码中,让你的listview(我在这种情况下使用AbsListView)注册一个上下文菜单。我为此做了一个简单的活动,如下所示:
package com.example.listitems;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ListAdapter;
import android.widget.ListView;
import java.util.ArrayList;
public class ProductActivity extends AppCompatActivity implements AbsListView.OnItemClickListener {
private static final int ACTIVITY_BUY = 1;
private ArrayList<ProductItem> ITEMS = new ArrayList<>();
private AbsListView listView;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.product_list);
listView = (AbsListView) findViewById(R.id.list);
listView.setOnItemClickListener(this);
registerForContextMenu(listView);
}
@Override
protected void onResume() {
loadInventory();
super.onResume();
}
private void loadInventory() {
ITEMS.clear();
do {
ProductItem newItem = new ProductItem(/*Put your constructor values here*/);
ITEMS.add(newItem);
} while (/*Source is not exhausted*/);
ProductAdapter products = new ProductAdapter(ProductActivity.this, ITEMS);//create a custom adapter if you wish
((AdapterView<ListAdapter>)listView).setAdapter(products);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.list_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.list_menu_item_longpress, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_details:
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
showDetailsAboutObject(info.id);
return true;
}
return super.onContextItemSelected(item);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ProductItem item = (ProductItem) parent.getAdapter().getItem(position);
Intent i = new Intent(ProductActivity.this, BuyProductActivity.class);
i.putExtra("PRODUCT_ID", item.getItemId());
startActivityForResult(i, ACTIVITY_BUY);
}
}