Android 长链接转短链接

本文介绍了如何在Android应用中实现长链接缩短功能,通过URLShortener库进行操作。用户输入长链接,点击按钮后,显示缩短后的链接,并且点击缩短链接可直接在浏览器中打开。同时,还提供了从缩短链接恢复原始长链接的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.pddstudio.urlshortener.URLShortener;

public class MainActivity extends AppCompatActivity {

    EditText urlText;
    Button createButton;
    TextView outputLink;

    EditText shortUrlEditText;
    Button getLongUrlButton;
    TextView longUrlOutputLink;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        urlText = (EditText) findViewById(R.id.urlText);
        createButton = (Button) findViewById(R.id.createBtn);
        createButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                URLShortener.shortUrl(urlText.getText().toString(), new URLShortener.LoadingCallback() {
                    @Override
                    public void startedLoading() {
                        outputLink.setText("Loading...");
                    }

                    @Override
                    public void finishedLoading(@Nullable String shortUrl) {
                        if(shortUrl != null) outputLink.setText(shortUrl);
                        else outputLink.setText("Unable to generate Link!");
                    }
                });
            }
        });
        outputLink = (TextView) findViewById(R.id.outputLink);
        outputLink.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(outputLink.getText() != null && outputLink.getText().length() > 0) {
                    Intent action = new Intent(Intent.ACTION_VIEW);
                    action.setData(Uri.parse(outputLink.getText().toString()));
                    startActivity(action);
                }
            }
        });



        shortUrlEditText = (EditText) findViewById(R.id.shortUrlEditText);
        getLongUrlButton = (Button) findViewById(R.id.getLongUrlBtn);
        getLongUrlButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                /*new ShortUrlTask(urlText.getText().toString())
                        .displayIn(outputLink)
                        .execute();*/
                URLShortener.longUrl(shortUrlEditText.getText().toString(), new URLShortener.LoadingCallback() {
                    @Override
                    public void startedLoading() {
                        longUrlOutputLink.setText("Loading...");
                    }

                    @Override
                    public void finishedLoading(@Nullable String longUrl) {
                        if(longUrl != null) longUrlOutputLink.setText(longUrl);
                        else longUrlOutputLink.setText("Unable to generate Link!");
                    }
                });
            }
        });
        longUrlOutputLink = (TextView) findViewById(R.id.longUrlOutputLink);
        longUrlOutputLink.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(longUrlOutputLink.getText() != null && longUrlOutputLink.getText().length() > 0) {
                    Intent action = new Intent(Intent.ACTION_VIEW);
                    action.setData(Uri.parse(longUrlOutputLink.getText().toString()));
                    startActivity(action);
                }
            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值