【发布时间】:2019-08-27 20:29:38
【问题描述】:
大家好,我需要帮助解决一个我无法解决的微不足道的问题,然后我正在使用 android studio 为 android 编写一个应用程序,该应用程序应该做的是读取 TextView 的内容,纯文本格式没有数字或任何东西,并且基于 TextView 的内容应该更改图像或文本,我不能我尝试编写此代码但它不起作用,请你告诉我我错在哪里并给我写一些代码,谢谢.
public class CashBackPage extends AppCompatActivity {
public FirebaseAuth mAuth;
public AdView adViewTop, adViewBot;
TextView mLogout;
TextView mTxtPhone;
TextView mPhone;
TextView mReadCash;
TextView mVersionApp;
TextView mCodeRappCash;
TextView mGeneralTextCash, mSendRequestText;
ImageButton mSendRequest, mCancel;
LinearLayout mbannerTop, mbannerBot;
FirebaseDatabase mDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cash_back_page);
mLogout = (TextView) findViewById(R.id.logoutbutn);
mTxtPhone = (TextView) findViewById(R.id.TextPhone);
mPhone = (TextView) findViewById(R.id.NumberPhTxt);
mReadCash = (TextView) findViewById(R.id.ReadCashBack);
mVersionApp = (TextView) findViewById(R.id.VersionApp);
mSendRequest = (ImageButton) findViewById(R.id.SendRequestBtn);
mCancel = (ImageButton) findViewById(R.id.CancelBtn);
mCodeRappCash = (TextView) findViewById(R.id.CodeDiscountCash);
mGeneralTextCash = (TextView) findViewById(R.id.textgeneralacash);
mSendRequestText = (TextView) findViewById(R.id.textsendrequest);
mSendRequestText.setVisibility(View.GONE);
mGeneralTextCash.setVisibility(View.GONE);
mAuth = FirebaseAuth.getInstance();
initFirebase();
//Set Orientation Portrait
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
getnumberprefs();
if (!isEmpty (String.valueOf(mCodeRappCash))){
String textgen = mCodeRappCash.getText().toString().trim();
if (textgen.equals("Request code sent...")){
mSendRequestText.setVisibility(View.VISIBLE);
mGeneralTextCash.setVisibility(View.GONE);
}else{
mSendRequestText.setVisibility(View.GONE);
mGeneralTextCash.setVisibility(View.VISIBLE);
}
}
}
@Override
protected void onStart() {
super.onStart();
// Read to the database CashBack
DatabaseReference myRef = mDatabase.getReference();
myRef.child("Utenti").child(mPhone.getText().toString()).child("CashBack").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String cashback = dataSnapshot.getValue(String.class);
mReadCash.setText(cashback);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
// Read to the database Version App
myRef.child("Utenti").child(mPhone.getText().toString()).child("Version App").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String versionapp = dataSnapshot.getValue(String.class);
mVersionApp.setText(versionapp);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
// Read to the database Code Cash Back
myRef.child("Utenti").child(mPhone.getText().toString()).child("RappCash Code").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String coderappcash = dataSnapshot.getValue(String.class);
mCodeRappCash.setText(coderappcash);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
public void logoutclick(View view) {
Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vib.vibrate(30);
mAuth.signOut();
updateUI();
}
private void initFirebase() {
mDatabase = FirebaseDatabase.getInstance();
}
private void updateUI() {
FirebaseUser currentuser = mAuth.getCurrentUser();
if(currentuser == null){
Intent intTologin = new Intent(this, MainActivity.class);
finish();
startActivity(intTologin);
}
}
private void getnumberprefs() {
SharedPreferences numb = getSharedPreferences(Register.NUMB, MODE_PRIVATE);
String numberphn = numb.getString(Register.KEY_NUMB,null);
mPhone.setText(numberphn);
}
public void sendrequest(View view) {
Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vib.vibrate(30);
DatabaseReference myRef = mDatabase.getReference();
myRef.child("Utenti").child(mPhone.getText().toString()).child("RappCash Code").setValue("Request code sent...");
}
public void cancelrequest(View view) {
Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vib.vibrate(30);
new CountDownTimer(15000, 1000) {
public void onTick(long millisUntilFinished) {
DatabaseReference myRef = mDatabase.getReference();
myRef.child("Utenti").child(mPhone.getText().toString()).child("RappCash Code").setValue("Request code canceled...");
}
public void onFinish() {
DatabaseReference myRef = mDatabase.getReference();
myRef.child("Utenti").child(mPhone.getText().toString()).child("RappCash Code").setValue("#RappCashCode");
}
}.start();
}
private boolean isEmpty (String mCoins) {
return mCoins.contentEquals("#RappCashCode");
}
}
所以只有当文本与“发送的请求代码......”相同时,它才会更改另一个文本视图中包含的图像或文本,我在 OnStart 和 OnCreate 中都输入了此代码,但在这两种情况下它都不起作用。
我声明 TextView 读取实时数据库 firebase 的一行内容,并在应用程序中返回写入数据库的内容
【问题讨论】:
-
我相信当我去读取实时数据库上的非文本格式的值时会出现问题