Отправка токена между классами - PullRequest
0 голосов
/ 12 декабря 2018

Я хотел бы отправить строку между классом Java в Android Studio.У меня есть класс CreateToken.java и MainActivity.java, как я могу отправить строку yourToken на MainActivity.java и как я могу получить строку yourToken в MainActivity.java, а результат yourToken равен com.example.user.application.CreateToken@yourToken, но yourToken не полный токен, его всего 7 символов.

Это одна из моих функций в CreateToken.java:

public class CreateToken {
private ICreateToken listener;

public CreateToken(ICreateToken listener) {
    this.listener = listener;
}

public Call<Token> api(final Context ctx){
    ApiInterface api = ApiClient.getClient().create(ApiInterface.class);
    String usernameApi = "web";
    String passwordApi = "123";
    Call<Token> getToken = api.postWebService(usernameApi,passwordApi);
    getToken.enqueue(new Callback<Token>() {
        @Override
        public void onResponse(Call<Token> call, Response<Token> response) {
            String error = response.body().getError();
            if (error.equals("false")){
                Toast.makeText(ctx, response.body().getToken(),Toast.LENGTH_SHORT).show();
                Log.d("Smart","Response : Token Show");
                String yourToken =  response.body().getToken();
                listener.onTokenGenerated(yourToken);
            }else {
                Toast.makeText(ctx, response.body().getMessage(),Toast.LENGTH_SHORT).show();
                Log.d("Smart","Response : Token NUll");
            }

        }
        @Override
        public void onFailure(Call<Token> call, Throwable t) {
            Log.d("Smart","Response : Token Null");

        }
    });
    return getToken;
}
public interface ICreateToken {
    void onTokenGenerated(String token);
}
}

И это мое MainActivity.java:

public class MainActivity extends AppCompatActivity implements CreateToken.ICreateToken {

    TextView textView;


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

                   CreateToken token = new CreateToken(MainActivity.this);
                   textView.setText(token.toString());
     }

    @Override
    public void onTokenGenerated(String token) {

    }
}

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Вы должны позвонить api, как показано ниже для отправки запроса на сервер:

CreateToken tokenCreator = new CreateToken(MainActivity.this);
tokenCreator.api(this);

и дождаться срабатывания onTokenGenerated и использовать String token

@Override
public void onTokenGenerated(String token) {
    textView.setText(token.toString());
}
0 голосов
/ 12 декабря 2018

Вы должны иметь доступ к yourToken в MainActivity в

    @Override
    public void onTokenGenerated(String token) {

    }

при выполнении listener.onTokenGenerated(yourToken); в CreateToken.Просто вызовите метод public Call<Token> api(final Context ctx) и получите свой токен в MainActivity.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...