Wie, um Anrufe programmgesteuert in Android?

Wie, um Anrufe programmgesteuert in Android?

Habe ich das folgende layout definiert useful_numbers_item_fragment.xml:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:id="@+id/call_linear_layout">

        <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:orientation="vertical">
            <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/useful_nums_item_name"/>

            <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/useful_nums_item_value"/>
        </LinearLayout>

       <ImageButton
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:src="@drawable/call"
                android:id="@+id/call_btn"
                android:onClick="callNumber"/>

    </LinearLayout>

Ich dynamisch füllen Sie die zwei text-Ansichten in einer Klasse genannt UNItemListFragment.java
in der onCreate-Methode:

public void onCreate(Bundle savedInstance) {
        super.onCreate(savedInstance);

        if (getArguments().containsKey(Constants.UNItem.GROUP_ID)) {

            simpleCursorAdapter = new SimpleCursorAdapter(getActivity(), R.layout.useful_numbers_item_fragment, null,
                    new String[]{Constants.UNItem.NAME, Constants.UNItem.VALUE},
                    new int[]{R.id.useful_nums_item_name, R.id.useful_nums_item_value}, 0);
            setListAdapter(simpleCursorAdapter);
            getLoaderManager().initLoader(0, getArguments(), this);

        }
    }

Für jede Nummer, wenn ich auf den button möchte ich ein Anruf von
aufrufen callNumber Methode, wenn der Benutzer auf die Schaltfläche klickt:

public void callNumber(View view) {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        TextView unItemVal = (TextView) findViewById(R.id.useful_nums_item_value);

            String phoneNumber = unItemVal.getText().toString();
            callIntent.setData(Uri.parse("tel:" + phoneNumber));
            startActivity(callIntent);
    }

Es ist ok, wenn ich auf der ersten Schaltfläche in der Liste, aber wenn ich auf die anderen buttons
es ist weiterhin telefonisch unter der Nummer definiert, die in der ersten Reihe...

Eine Idee, wie man dieses Problem beheben?

Schreibe einen Kommentar