2017-11-21 8 views
0

私はAndroidアプリケーション開発の初心者です。オンライン資料を通じて学習します。私は1ヶ所で立ち往生しているアプリを開発しています。 参加人数layout1に基づいています。私は非常に多くの人々の入力を得るために私が設計したカスタムフォーム(layout2で表示)を生成したいと思います。 アレイアダプタインフレータのコンセプトを使用してカスタムレイアウトをListViewに表示しようとしましたが、できませんでした。私の所望の出力はLayout3に取り付けたとして、私は私の希望出力に含まを作成するように私はこれをやっている参加者のないとLayout1からナビゲートした後layout3カスタムフォームレイアウトのリストを作成して、入力した数に基づいて詳細を入力してください

に示されています。これらは私が試してみたものですが、コードがameateurであれば許してください。これを完了する方法を見つけるのを手伝ってください、あなたの助けに感謝します。

Layout3Activity

public class Layout3Activity extends Activity{ 
    // 
    // 
    // 
ListView listView; 
FriendsLayoutAdapter adapter; 
    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.layout3); 
      listView = (ListView) findViewById(R.id.listView1); 
      adapter = new FriendsLayoutAdapter(getApplicationContext(),R.layout.layout2); 
      listView.setAdapter(adapter); 
    } 
    // 
    // 
    // 
    // 
    } 

layout2.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="160dp"> <!-- setting layout height to 160dp so that it only fits in the box we have created--> 

    <TextView 
     android:text="Friend i" 
     android:textAppearance="?android:textAppearanceLarge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/friendLabel" 
     android:layout_above="@+id/nameEditText" 
     android:layout_alignStart="@+id/nameTextView" 
     android:layout_marginBottom="15dp" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Enter Name here..!!" 
     android:id="@+id/nameEditText" 
     android:layout_toRightOf="@+id/nameTextView" 
     android:layout_alignBaseline="@+id/nameTextView" 
     android:layout_alignBottom="@+id/nameTextView" 
     android:layout_centerHorizontal="true" 
     android:layout_marginRight="20dp" 
     android:layout_marginLeft="20dp" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Enter Amount Spent..!!" 
     android:id="@+id/amountEditText" 
     android:layout_toRightOf="@+id/amountTextView" 
     android:layout_alignBaseline="@+id/amountTextView" 
     android:layout_alignBottom="@+id/amountTextView" 
     android:layout_centerHorizontal="true" 
     android:layout_marginRight="20dp" 
     android:layout_marginLeft="20dp" /> 

    <TextView 
     android:text="Amount:" 
     android:textAppearance="?android:textAppearanceMedium" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginStart="24dp" 
     android:id="@+id/amountTextView" 
     android:layout_marginTop="17dp" 
     android:layout_below="@+id/nameEditText" 
     android:layout_alignParentStart="true" /> 

    <TextView 
     android:text="Name:" 
     android:textAppearance="?android:textAppearanceMedium" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="70dp" 
     android:id="@+id/nameTextView" 
     android:layout_alignParentTop="true" 
     android:layout_alignStart="@+id/amountTextView" /> 

    <!--<View 
     android:layout_width="match_parent" 
     android:layout_height="2dp" 
     android:layout_below="@+id/amountEditText" 
     android:background="@color/jetBlack"> 
    </View>--> 

</RelativeLayout> 

layout3.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ListView 
     android:id="@+id/listView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

    </ListView> 
</LinearLayout> 

FriendsLayoutAdapter

public class FriendsLayoutAdapter extends ArrayAdapter{ 

    String[] friends = {"Friend 1", "Friend 2","Friend 3","Friend 4"}; 

    public FriendsLayoutAdapter(Context context, int resource) { 
     super(context, resource); 
    } 

    @Override 
    public int getCount() { 
     return 0; 
    } 

    @Override 
    public Object getItem(int i) { 
     return null; 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 

     LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view = inflater.inflate(R.layout.entries_layout,viewGroup,false); 

     TextView friendLabel = (TextView) view.findViewById(R.id.friendLabel); 
     TextView name = (TextView) view.findViewById(R.id.nameTextView); 
     TextView amount = (TextView) view.findViewById(R.id.amountTextView); 
     EditText nameEdit = (EditText) view.findViewById(R.id.nameEditText); 
     EditText amountEdit = (EditText) view.findViewById(R.id.amountEditText); 


     return super.getView(i, view, viewGroup); 
    } 
// 
// 
// 
} 

答えて

0

あなたが0の要素を表示している、あなたのアダプタを変更する必要があります。

これを試してみてください:これは動作しない

public class FriendsLayoutAdapter extends ArrayAdapter{ 

    String[] friends = {"Friend 1", "Friend 2","Friend 3","Friend 4"}; 

    public FriendsLayoutAdapter(Context context, int resource) { 
     super(context, resource); 
    } 

    @Override 
    public int getCount() { 
     return friends.length(); 
    } 

    @Override 
    public Object getItem(int i) { 
     return friends[i]; 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     String value = friends[i]; 
     LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view = inflater.inflate(R.layout.entries_layout,viewGroup,false); 

     TextView friendLabel = (TextView) view.findViewById(R.id.friendLabel); 
     TextView name = (TextView) view.findViewById(R.id.nameTextView); 
     TextView amount = (TextView) view.findViewById(R.id.amountTextView); 
     EditText nameEdit = (EditText) view.findViewById(R.id.nameEditText); 
     EditText amountEdit = (EditText) view.findViewById(R.id.amountEditText); 

     friendLabel.setText(value); 
     return super.getView(i, view, viewGroup); 
    } 

} 
+0

、私が試した、** Unfortunaleyアプリケーションは、その活動に入るに来る**が停止しています。その他のソリューション。 layout1、layout2、layout3をご覧ください。レイアウト3で述べたように、アダプタに結果を返す –

関連する問題