3

古いプログラムをタブとフラグメントの実装に転送しています。ユーザーは検索用のIDを入力し、[送信]をクリックします。しかし、私の「送信ボタン」は何もしません。

私はいくつかの代替コーディングバリアントを試しましたが、同じ結果が得られました-デッドエア!

これがXMLです

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/setUpAthletesTab"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
     android:background="#CCFFFF" >

    <TextView
        android:id="@+id/instructionText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="@string/instructionText"
    android:textColor="#FF0000"
    android:textAppearance="?android:attr/textAppearanceMedium"
     />

    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:stretchColumns="*" >

        <EditText
            android:id="@+id/editTextAthlete0"
            android:layout_width="145dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:hint="@string/hintText"
            android:inputType="number" />

        <TextView
            android:id="@+id/textAthleteName0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="5dp"
            android:hint="@string/athleteHintName0"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </TableRow>

これが私のタブ/フラグメントです

public class Tab3Fragment extends Fragment {

    /* (non-Javadoc)
     * @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
     */
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        /* Begin Insertion */
        LayoutInflater myInflater = inflater;
        ViewGroup myContainer = container;
        if(inflater == null) myInflater = inflater;
        if(container == null) myContainer = container;
        Log.d(APP_TAG,"At line 50 of Tab3Fragment myInflater = " + myInflater + " and myContainer = " + myContainer);
        getAthleteInfoFromExistingDatabase(myInflater,myContainer);

        LinearLayout tab3LinearLayout = (LinearLayout) inflater.inflate(R.layout.tab_frag3_layout, container, false);

        View mySubmitButton = tab3LinearLayout.findViewById(R.id.submitButton);
        ((Button) mySubmitButton).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                Toast.makeText(Tab3Fragment.this.getActivity().getBaseContext(),
                        "clicked on Submit Button", Toast.LENGTH_LONG).show();

                Intent intent = new Intent();
                intent.setClass(getActivity(), RetrieveAthleteData.class);
                startActivity(intent);
            }
        });

        return (LinearLayout)inflater.inflate(R.layout.tab_frag3_layout, container, false);
    }

送信を押しても、トーストボックスもインテントも起動しません。

私の質問を見てくれてありがとう。

問題が解決しました!名前をすべて小文字に変更することを提案してくれたDirkに感謝します。

4

2 に答える 2

1

xmlには、IDが「submitButton」のボタンはありません。

小文字のみを使用する必要があるため、ID「@ + id/submit_button」を指定してください

キャメルケースIDが許可されていないソースは見つかりませんでしたが。Googleでさえ、例でキャメルケースIDを使用することがあります。

于 2012-08-21T09:01:25.173 に答える
1

あなたはここで新しいビューのセットをスパンキングしているブランドを膨らませて返しています:

return (LinearLayout)inflater.inflate(R.layout.tab_frag3_layout, container, false);

実行した膨らんだビューを返す必要があります。

return tab3LinearLayout;
于 2012-08-21T09:10:34.810 に答える