2017-11-15 11 views
0

android.Iにテーブルレイアウトを実装しようとしています.1つのxmlファイルで設計されたテーブルヘッダーと行があり、adapter.Soを使ってデータを渡しています。何が起こっているのですか?表のヘッダーは各行で繰り返されます。 私が達成したいのは、テーブルヘッダーは一度しか表示されず、その下のすべての行がテーブルヘッダーと共にスクロールする必要があるということです。ここでandroidでテーブルを水平にスクロールする方法

は私のxmlファイルが

<?xml version="1.0" encoding="utf-8"?> 

<HorizontalScrollView android:id="@+id/horizontalView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_marginTop="5dip" 
android:scrollbars="horizontal|vertical" 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="left" 
    android:stretchColumns="*" 
    android:divider="@color/black" 
    android:showDividers="middle" 
    > 
    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 

     > 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 
      android:text="Name" 
      android:textAllCaps="false" 
      android:textColor="@color/black" 
      android:textSize="18sp" 
      android:textStyle="bold|italic" /> 


     <TextView 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 

      android:text="Type" 
      android:textAllCaps="false" 
      android:textColor="@color/black" 
      android:textSize="18sp" 
      android:textStyle="bold|italic" /> 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 

      android:text="Fare" 
      android:textAllCaps="false" 
      android:textColor="@color/black" 
      android:textSize="18sp" 
      android:textStyle="bold|italic" /> 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 

      android:text="Tax" 
      android:textAllCaps="false" 
      android:textColor="@color/black" 
      android:textSize="18sp" 
      android:textStyle="bold|italic" /> 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 

      android:text="Airline Pnr" 
      android:textAllCaps="false" 
      android:textColor="@color/black" 
      android:textSize="18sp" 
      android:textStyle="bold|italic" /> 

     <TextView 
      android:layout_width="120dp" 
      android:layout_height="wrap_content" 

      android:text="Ticekt Numner" 
      android:textAllCaps="false" 
      android:textColor="@color/black" 
      android:textSize="18sp" 
      android:textStyle="bold|italic" /> 

     <TextView 
      android:layout_width="120dp" 
      android:layout_height="wrap_content" 

      android:text="Cancel" 
      android:textAllCaps="false" 
      android:textColor="@color/black" 
      android:textSize="18sp" 
      android:textStyle="bold|italic" /> 
    </TableRow> 
    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 

     > 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 

      android:textColor="@color/black" 
      android:textSize="18sp" 
      android:id="@+id/name"/> 
     <TextView 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/type" 
      android:textColor="@color/black" 
      android:textSize="18sp" /> 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/fare" 
      android:textColor="@color/black" 
      android:textSize="18sp" /> 

     <TextView 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/tax" 
      android:textColor="@color/black" 
      android:textSize="18sp" /> 
     <TextView 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/air_pnr" 
      android:textColor="@color/black" 
      android:textSize="18sp" /> 

     <TextView 
      android:layout_width="120dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/ticket" 
      android:textColor="@color/black" 
      android:textSize="18sp" /> 

     <CheckBox 
     android:id="@+id/check_bx" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:text="CANCEL" /> 
    </TableRow> 


    </TableLayout> 
    </HorizontalScrollView> 

だし、ここで、それはscrolling table

UPDATEどのように見えるかの画像(2)HEREアダプターコードだ

public class Flight_cancel_Adapter extends BaseAdapter { 
Context context; 
public static ArrayList<Flight_cancel_Details> rowItems; 
public static int available_seats; 
public static PolicyAdapter adapter; 
int TOTAL; 
public static ArrayList<String> arraySeat=new ArrayList<String>(); 

    Flight_cancel_Adapter(Context context, ArrayList<Flight_cancel_Details> rowItems) { 

    this.context = context; 
    this.rowItems = rowItems; 

} 
@Override 
public int getCount() { 
    return rowItems.size(); 
} 

@Override 
public Object getItem(int position) { 
    return rowItems.get(position); 
} 

@Override 
public long getItemId(int position) 
{ 
    return rowItems.indexOf(getItem(position)); 
} 

/* private view holder class */ 
private class ViewHolder { 
    TextView type; 
    TextView fare; 
    TextView tax; 
    TextView air_pnr; 
    TextView ticket; 
    TextView namee; 
    CheckBox box; 

} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) 
{ 
    final ViewHolder holder; 
    LayoutInflater mInflater = (LayoutInflater) context 
      .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.test, null); 
     holder = new ViewHolder(); 
    } 
    else 
    { 
     holder = (ViewHolder) convertView.getTag(); 
    } 


    holder.namee = (TextView) convertView.findViewById(R.id.name); 
    holder.type = (TextView) convertView.findViewById(R.id.type); 
    holder.fare = (TextView) convertView.findViewById(R.id.fare); 
    holder.tax = (TextView) convertView.findViewById(R.id.tax); 
    holder.air_pnr = (TextView) convertView.findViewById(R.id.air_pnr); 
    holder.ticket = (TextView) convertView.findViewById(R.id.ticket); 
    holder.box = (CheckBox) convertView.findViewById(R.id.check_bx); 
    holder.box.setTag(position); 


    try 
    { 
     final Flight_cancel_Details row_pos = rowItems.get(position); 
     String name=String.valueOf(row_pos.getName()); 
     String typ=String.valueOf(row_pos.gettypes()); 
     String far=String.valueOf(row_pos.getfares()); 
     String tax=String.valueOf(row_pos.gettax()); 
     String pnr=String.valueOf(row_pos.getair_pnr()); 
     String ticket=String.valueOf(row_pos.getticket()); 


     System.out.print("ROW POS-"+row_pos.getStatus()); 
     if(row_pos.getStatus().equals("CANCELLED")) 
     { 
      holder.namee.setText(name); 
      holder.type.setText(typ); 
      holder.fare.setText(far); 
      holder.tax.setText(tax); 
      holder.air_pnr.setText(pnr); 
      holder.ticket.setText(ticket); 

      holder.box.setEnabled(false); 
      holder.box.setText("CANCELLED"); 

     }else { 

      holder.namee.setText(name); 
      holder.type.setText(typ); 
      holder.fare.setText(far); 
      holder.tax.setText(tax); 
      holder.air_pnr.setText(pnr); 
      holder.ticket.setText(ticket); 

      holder.box.setEnabled(true); 
      holder.box.setText("CANCEL"); 
     } 
     if(row_pos.getTarvel_Status().equals("TRAVELLED")) 
     { 
      holder.namee.setText(name); 
      holder.type.setText(typ); 
      holder.fare.setText(far); 
      holder.tax.setText(tax); 
      holder.air_pnr.setText(pnr); 
      holder.ticket.setText(ticket); 

     } 




    } 
    catch (Exception e) 
    { 
     Log.e("BUS_CANCEL_ADAP ERROR:", e.getMessage()); 
    } 
    convertView.setTag(holder); 

    holder.box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      if(isChecked) { 
       int position = (int) buttonView.getTag(); 
       System.out.println("--CLICKED--" + position); 
       String contactId = (holder.air_pnr.getText().toString()); 
       System.out.println("--VALUE--" + contactId); 
       arraySeat.add(contactId); 
      } 
      else 
       { 
        int position = (int) buttonView.getTag(); 
        System.out.println("--UNCHEKED--" + position); 
        String contactId = (holder.air_pnr.getText().toString()); 
        System.out.println("--UNCHEKED VALUE--" + contactId); 
        arraySeat.remove(contactId); 
       } 
     } 
    }); 


    return convertView; 

} 
} 
+0

あなたは一度だけ、すべてのヘッダ行を置くことを試みることができます他の行にはデータ行があります。スクロールビュー –

+0

にテーブル全体を囲み、アダプタコードを記入してください。 –

+0

私はアダプタコード@MohammedFarhan –

答えて

0

使用Recyclerview

のtest.xml

<?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"> 

    <TextView 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:text="Name" 
     android:textAllCaps="false" 
     android:textColor="@color/black" 
     android:textSize="18sp" 
     android:textStyle="bold|italic" /> 

    <TextView 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:text="name" 
     android:textColor="@color/black" 
     android:textSize="18sp" 
     android:id="@+id/name"/> 
    </LinearLayout> 

recyclerview.xml

<?xml version="1.0" encoding="utf-8"?> 
    <android.support.v7.widget.RecyclerView android:id="@+id/horizontalView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dip" 
    android:scrollbars="horizontal" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:listitem="@layout/layout"> 
</android.support.v7.widget.RecyclerView> 
0

はここに私のXMLファイルです、あなたが入れなければなりません全行TableView(TextView)のタイトルはLinearLayoutです。パフォーマンス向上のための水平scrollviewため

<?xml version="1.0" encoding="utf-8"?> 
<HorizontalScrollView android:id="@+id/horizontalView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dip" 
    android:scrollbars="horizontal|vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

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

     <!--Title for all row, once for all row --> 
     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 
      <TextView 
       android:layout_width="100dp" 
       android:layout_height="wrap_content" 
       android:text="Name" 
       android:textAllCaps="false" 
       android:textColor="@color/black" 
       android:textSize="18sp" 
       android:textStyle="bold|italic" /> 


      <TextView 
       android:layout_width="100dp" 
       android:layout_height="wrap_content" 

       android:text="Type" 
       android:textAllCaps="false" 
       android:textColor="@color/black" 
       android:textSize="18sp" 
       android:textStyle="bold|italic" /> 

      <TextView 
       android:layout_width="100dp" 
       android:layout_height="wrap_content" 

       android:text="Fare" 
       android:textAllCaps="false" 
       android:textColor="@color/black" 
       android:textSize="18sp" 
       android:textStyle="bold|italic" /> 

      <TextView 
       android:layout_width="100dp" 
       android:layout_height="wrap_content" 

       android:text="Tax" 
       android:textAllCaps="false" 
       android:textColor="@color/black" 
       android:textSize="18sp" 
       android:textStyle="bold|italic" /> 

      <TextView 
       android:layout_width="100dp" 
       android:layout_height="wrap_content" 

       android:text="Airline Pnr" 
       android:textAllCaps="false" 
       android:textColor="@color/black" 
       android:textSize="18sp" 
       android:textStyle="bold|italic" /> 

      <TextView 
       android:layout_width="120dp" 
       android:layout_height="wrap_content" 

       android:text="Ticekt Numner" 
       android:textAllCaps="false" 
       android:textColor="@color/black" 
       android:textSize="18sp" 
       android:textStyle="bold|italic" /> 

      <TextView 
       android:layout_width="120dp" 
       android:layout_height="wrap_content" 

       android:text="Cancel" 
       android:textAllCaps="false" 
       android:textColor="@color/black" 
       android:textSize="18sp" 
       android:textStyle="bold|italic" /> 
     </LinearLayout> 

     <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="left" 
      android:stretchColumns="*" 
      android:divider="@color/black" 
      android:showDividers="middle" 
      > 
      <TableRow 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       > 

       <TextView 
        android:layout_width="100dp" 
        android:layout_height="wrap_content" 
        android:text="My Name" 
        android:textColor="@color/black" 
        android:textSize="18sp" 
        android:id="@+id/name"/> 
       <TextView 
        android:layout_width="100dp" 
        android:layout_height="wrap_content" 
        android:id="@+id/type" 
        android:text="My Type" 
        android:textColor="@color/black" 
        android:textSize="18sp" /> 

       <TextView 
        android:layout_width="100dp" 
        android:layout_height="wrap_content" 
        android:id="@+id/fare" 
        android:textColor="@color/black" 
        android:textSize="18sp" /> 

       <TextView 
        android:layout_width="100dp" 
        android:layout_height="wrap_content" 
        android:id="@+id/tax" 
        android:textColor="@color/black" 
        android:textSize="18sp" /> 
       <TextView 
        android:layout_width="100dp" 
        android:layout_height="wrap_content" 
        android:id="@+id/air_pnr" 
        android:textColor="@color/black" 
        android:textSize="18sp" /> 

       <TextView 
        android:layout_width="120dp" 
        android:layout_height="wrap_content" 
        android:id="@+id/ticket" 
        android:textColor="@color/black" 
        android:textSize="18sp" /> 

       <CheckBox 
        android:id="@+id/check_bx" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 

        android:text="CANCEL" /> 
      </TableRow> 
     </TableLayout> 
    </LinearLayout> 

</HorizontalScrollView> 
+0

その出力がない –

関連する問題