3

私はAndroidが初めてです。クリック可能なテキストを含むアプリケーションを作成しています。クリック可能なすべてのテキストは配列に存在し、次に関連付けられListViewて RelativeLayout 内に表示されます。

そのコードは -

    this.setListAdapter(new ArrayAdapter<String>(this, R.layout.main, R.id.label, contact_name));
    ListView lv = getListView();

main は相対レイアウト、label はレイアウト内のテキスト ボックス ID、contact_name はクリック可能なテキストの配列です。これはすべて正常に機能しています。

最後に、配列が非常に大きい場合、線形レイアウトはスクロール可能になります。

ここで、このリストが占める領域を画面全体の高さの 80% または 90% に制限し、下部に新しいページ/ビューを開くボタン用のスペースを確保したいと考えています。相対レイアウト内にボタンを含めると、リスト内のすべての項目にボタンが追加されます。相対的なレイアウトの高さを変更すると、リスト内の各アイテムの高さが変わります。これは、配列内の各アイテムが相対レイアウト全体に関連付けられており、相対レイアウトの配列がすべてのアイテムを表示するために来ると結論付けています。ここで、相対レイアウト リストを画面の上部から 80% に制限して、下部にボタンを配置するにはどうすればよいですか。

現在の XML ファイルは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btn"
        android:layout_alignParentBottom="true" 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:text="Next"
        />

    <ScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:layout_above="@id/btn">

        <TextView
            android:id="@+id/label"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            android:padding="10dip"
            android:textSize="16sp"
            android:textStyle="bold" >
        </TextView>
    </ScrollView>
</RelativeLayout>

コードの終わり

出力は、実際のコンテンツが非表示になっている [次へ] ボタンの配列です。

これは私のJavaコードです

// Make the contact number parameter accessible to member functions of List View
        final String[] f_contact_number = contact_number;

        // Binding Array to ListAdapter
        this.setListAdapter(new ArrayAdapter<String>(this, R.layout.main, R.id.label, contact_name));

        ListView lv = getListView();

        // listening to single list item on click
        lv.setOnItemClickListener(new OnItemClickListener() {
          public void onItemClick(AdapterView<?> parent, View view,
              int position, long id) {

              Intent intent = new Intent(Intent.ACTION_CALL);
              intent.setData(Uri.parse(f_contact_number[position]));
              startActivity(intent);

          }
        });

Contact_number と contact_names は、contact_name をクリックすると番号を呼び出す 2 つの文字列配列です。

Thanks
4

4 に答える 4

2

これは、 を使用すると簡単に実行できますRelativeLayout。を使用してこれを行う場合は、ビューの layout_height を0dpLinearLayout設定し、 layout_weightを使用して高さを分散できます。

于 2013-07-04T11:02:33.547 に答える
1
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >

  <ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/yourbtnid"
    android:scrollbars="vertical" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="your text" >
    </TextView>
  </ScrollView>

  <Button
    android:id="@+id/yourbtnid"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_gravity="center_vertical"
    android:text="Button" />

</RelativeLayout>
于 2013-07-05T05:01:38.983 に答える
0

Anamika が提案したことを実行したところ、魅力的に機能しました。

コードを少し変更したため、ボタンが中央に配置され、すべてのスペースが埋まりません。

問題は、レイアウト コードではなく、Java コードにある可能性があります。

あなたはそれを機能させましたか?

それでも問題が解決しない場合はお知らせください。問題を確認し、解決のお手伝いをいたします。

于 2014-04-18T18:57:26.220 に答える