繁体   English   中英

如何在Android代码的第二个活动的每行中插入电话图标

[英]How to insert Phone icon in every line in second Activity in Android code

我正在做一个Android应用,我想在其中逐行显示每个旅行的姓名及其联系电话。 这是代码:

AppActivity.java

package com.example.android;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;

public class AppActivity extends Activity{

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent i=new Intent(AppActivity.this, App2Activity.class);
                i.putExtra("name1","Travels1");
                i.putExtra("number1","7843564358");
                i.putExtra("name2","Travels2");
                i.putExtra("number2","7664764358");
                i.putExtra("name3","Travels3");
                i.putExtra("number3","8804764358");
                startActivity(i);
            }
        });   
    }
}

main.xml中

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<Button
    android:id="@+id/button1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/travel_button" />

</LinearLayout>

App2Activity.java

package com.example.android;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class App2Activity extends Activity {
    String name1,name2,name3;
    Button btnOne, btnTwo, btnThree;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);

        btnOne = (Button)findViewById(R.id.btnOne);
        btnTwo = (Button)findViewById(R.id.btnTwo);
        btnThree = (Button)findViewById(R.id.btnThree);

        String number1=getIntent().getStringExtra("number1");
        String number2=getIntent().getStringExtra("number2");
        String number3=getIntent().getStringExtra("number3");

        btnOne.setText(number1);
        btnTwo.setText(number2);
        btnThree.setText(number3);

        btnOne.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent callIntent = new Intent(Intent.ACTION_DIAL);
                callIntent.setData(Uri.parse("tel:"+btnOne.getText()));
                startActivity(callIntent);
            }
        });

        btnTwo.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent callIntent = new Intent(Intent.ACTION_DIAL);
                callIntent.setData(Uri.parse("tel:"+btnTwo.getText()));
                startActivity(callIntent);
            }
        });

        btnThree.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent callIntent = new Intent(Intent.ACTION_DIAL);
                callIntent.setData(Uri.parse("tel:"+btnThree.getText()));
                startActivity(callIntent);
            }
        });
    }
}

main2.xml

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<Button
    android:id="@+id/btnOne"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<Button
    android:id="@+id/btnTwo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<Button
    android:id="@+id/btnThree"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" /> 

</LinearLayout>

strings.xml中

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

<resources>

    <string name="app_name">Travel Details</string>
    <string name="travel_button">Travels and Holidays</string>

</resources>

AndroidManifest.xml中

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

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />
    <uses-permission android:name="android.permission.CALL_PHONE" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".AppActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:label="@string/app_name"
            android:name=".App2Activity" >
        </activity>
    </application>

</manifest>

当我在第一个活动中单击“旅行和假期”按钮时,它将转到另一个活动并显示以下内容:

7843564358
7664764358
8804764358

单击此号码后,将转到该号码的通话选项。

但是我想要的是:当我在第一个活动中单击“旅行和假期”按钮时,它应该转到另一个活动并显示以下内容:

Travels1 - 7843564358    Phone Icon
Travels2 - 7664764358    Phone Icon
Travels3 - 8804764358    Phone Icon

当我单击特定旅行的电话图标时,它应该转到该号码的通话选项。

如何解决这个问题? 请帮忙。 提前致谢。

首先像这样更改您的main2 xml文件

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

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextBox
            android:id="@+id/txtOne"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Travels - 1" />

        <TextBox
            android:id="@+id/txtNum1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ImageButton
            android:id="@+id/btnCall1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/abc_ic_menu_paste_mtrl_am_alpha" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextBox
            android:id="@+id/txtTwo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Travels - 2" />

        <TextBox
            android:id="@+id/txtNum2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ImageButton
            android:id="@+id/btnCall2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/abc_ic_menu_paste_mtrl_am_alpha" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextBox
            android:id="@+id/txtThree"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Travels - 3" />

        <TextBox
            android:id="@+id/txtNum3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ImageButton
            android:id="@+id/btnCall3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/abc_ic_menu_paste_mtrl_am_alpha" />
    </LinearLayout>

</LinearLayout>

并像这样更改您的App2Activity类

String name1,name2,name3;
    ImageButton btnOne, btnTwo, btnThree;
    TextView txtNum1,txtNum2,txtNum3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);

        btnOne = (ImageButton)findViewById(R.id.btnOne);
        btnTwo = (ImageButton)findViewById(R.id.btnTwo);
        btnThree = (ImageButton)findViewById(R.id.btnThree);

        txtNum1=(TextView)findViewById(R.id.txtNum1);
        txtNum2=(TextView)findViewById(R.id.txtNum2);
        txtNum3=(TextView)findViewById(R.id.txtNum3);


        String number1=getIntent().getStringExtra("number1");
        String number2=getIntent().getStringExtra("number2");
        String number3=getIntent().getStringExtra("number3");

        txtNum1.setText(number1);
        txtNum2.setText(number2);
        txtNum3.setText(number3);

        btnOne.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent callIntent = new Intent(Intent.ACTION_DIAL);
                callIntent.setData(Uri.parse("tel:"+btnOne.getText()));
                startActivity(callIntent);
            }
        });

        btnTwo.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent callIntent = new Intent(Intent.ACTION_DIAL);
                callIntent.setData(Uri.parse("tel:"+btnTwo.getText()));
                startActivity(callIntent);
            }
        });

        btnThree.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent callIntent = new Intent(Intent.ACTION_DIAL);
                callIntent.setData(Uri.parse("tel:"+btnThree.getText()));
                startActivity(callIntent);
            }
        });
    }

但是我必须说,这不是一种更好的方法...您可以使用custome ListView 为了研究listview link-1link-2

1.您必须用这一个替换main2.xml文件的代码

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

    <LinearLayout
        android:id="@+id/llContainer1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/travel1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="Travels1 - " />

        <TextView
            android:id="@+id/txtNumber1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="20dip"
            android:text="325235" />

        <ImageButton
            android:id="@+id/btnPhone1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@android:drawable/stat_sys_phone_call" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/llContainer2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/travel2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="Travels2 - " />

        <TextView
            android:id="@+id/txtNumber2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="20dip"
            android:text="455345" />

        <ImageButton
            android:id="@+id/btnPhone2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@android:drawable/stat_sys_phone_call" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/llContainer3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/travel3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="Travels3 - " />

        <TextView
            android:id="@+id/txtNumber3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="20dip"
            android:text="453532" />

        <ImageButton
            android:id="@+id/btnPhone3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@android:drawable/stat_sys_phone_call" />
    </LinearLayout>

</LinearLayout>
  1. 更改App2Activity.java代码,如下所示:

    ImageButton btnPhoneOne,btnPhoneTwo,btnPhoneThree; TextView txtNum1,txtNum2,txtNum3;

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); btnPhoneOne = (ImageButton) findViewById(R.id.btnPhone1); btnPhoneTwo = (ImageButton) findViewById(R.id.btnPhone2); btnPhoneThree = (ImageButton) findViewById(R.id.btnPhone3); txtNum1 = (TextView) findViewById(R.id.txtNumber1); txtNum2 = (TextView) findViewById(R.id.txtNumber2); txtNum3 = (TextView) findViewById(R.id.txtNumber3); String number1 = getIntent().getStringExtra("number1"); String number2 = getIntent().getStringExtra("number2"); String number3 = getIntent().getStringExtra("number3"); txtNum1.setText(number1); txtNum2.setText(number2); txtNum3.setText(number3); btnPhoneOne.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent callIntent = new Intent(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + txtNum1.getText())); startActivity(callIntent); } }); btnPhoneTwo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent callIntent = new Intent(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + txtNum2.getText())); startActivity(callIntent); } }); btnPhoneThree.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent callIntent = new Intent(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + txtNum3.getText())); startActivity(callIntent); } }); 

    }

  2. 您可以看到图像main2.xml的屏幕截图 在此处输入图片说明

使用图像按钮,然后在xml文件中使用电话图标图像。

像这样:

<ImageButton
            android:id="@+id/btnCall1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/abc_ic_menu_paste_mtrl_am_alpha" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM