首页 > 解决方案 > 如何使 TextView 可滑动并在其位置显示第二个 TextView

问题描述

我在一个页面上有 5 个不同的 TextView,我想让它们可以滑动,这样当我将它们全部向左滑动时,它会显示相同的信息但具有不同的值(例如 Name = Ben,但是当向左滑动时 Name = Tim ), 这可能吗?如果是这样,我将如何去做?TextView 的信息是从 Firebase 数据库中提取的,但如果需要,可以将其更改为静态值。

这是我到目前为止所拥有的:

日历活动:

package com.example.adamf.authtest;

import android.content.Intent;
import android.renderscript.Allocation;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CalendarView;
import android.widget.TextView;
import android.widget.Toast;

import com.google.firebase.FirebaseApp;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import org.w3c.dom.Text;

import android.text.util.Linkify;

import java.util.GregorianCalendar;

public class CalendarActivity extends AppCompatActivity implements View.OnClickListener {

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String uid = user.getUid();



DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference mUserRef = mRootRef.child(uid).child("2018-04-23").child("Jane Jenkins");
DatabaseReference mNameRef = mUserRef.child("Name");
DatabaseReference mAddressRef = mUserRef.child("Address");
DatabaseReference mPostCodeRef = mUserRef.child("PostCode");
DatabaseReference mMobileRef = mUserRef.child("Mobile");
DatabaseReference mTimeRef = mUserRef.child("Time");

private DatabaseReference mDatabase;

private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;


private Button InformationBtn = null;
TextView mName;
TextView mAddress;
TextView mPostCode;
TextView mMobile;
TextView mTime;


@Override
protected void onDestroy() {
    super.onDestroy();
    mAuth.signOut();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.buttonSignOut) {
        startActivity(new Intent(CalendarActivity.this, LoginActivity.class));
        FirebaseAuth.getInstance().signOut();
        Toast.makeText(CalendarActivity.this, "Sign out successful", Toast.LENGTH_LONG).show();
    }

    return super.onOptionsItemSelected(item);
}

@Override
public void onBackPressed() {
    Toast.makeText(getApplicationContext(), "Please use the Sign Out button above", Toast.LENGTH_SHORT).show();
}

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

    mName = findViewById(R.id.textViewName);
    mAddress = findViewById(R.id.textViewAddress);
    mPostCode = findViewById(R.id.textViewPostcode);
    mMobile = findViewById(R.id.textViewMobile);
    mTime = findViewById(R.id.textViewTime);

    InformationBtn = findViewById(R.id.buttonInformation);
    InformationBtn.setOnClickListener(this);

    mAuth = FirebaseAuth.getInstance();


    Linkify.addLinks(mMobile, Linkify.PHONE_NUMBERS);
    Linkify.addLinks(mAddress, Linkify.MAP_ADDRESSES);



    InformationBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(CalendarActivity.this, ClientInfo.class));

        }
    });



    CalendarView view = new CalendarView(this);
    view.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
        public GregorianCalendar calendar;

        @Override
        public void onSelectedDayChange(CalendarView calendarView, int year, int month, int day) {
            this.calendar = new GregorianCalendar(year, month, day);
        }
    });











}

protected void onStart() {

    super.onStart();

    mNameRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String text = dataSnapshot.getValue(String.class);
            mName.setText(text);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    mAddressRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String text = dataSnapshot.getValue(String.class);
            mAddress.setText(text);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    mPostCodeRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String text = dataSnapshot.getValue(String.class);
            mPostCode.setText(text);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    mMobileRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String text = dataSnapshot.getValue(String.class);
            mMobile.setText(text);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    mTimeRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String text = dataSnapshot.getValue(String.class);
            mTime.setText(text);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });












}




@Override
public void onClick(View v) {

}


}

activity_calendar_v2.xml(布局文件):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools">

<CalendarView
    android:id="@+id/calendar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:minWidth="400dp" />



<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textName"
    android:layout_below="@+id/calendar"
    android:text="Name of patient:"
    android:layout_marginTop="20dp"
    android:layout_marginStart="30dp"
    android:textSize="14dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textViewName"
    android:layout_toEndOf="@+id/textName"
    android:layout_alignBottom="@+id/textName"
    android:text=" "
    android:textSize="12dp"
    android:layout_marginStart="20dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textAddress"
    android:layout_below="@+id/textName"
    android:text="Patients address:"
    android:layout_marginTop="10dp"
    android:layout_marginStart="30dp"
    android:autoLink="map"
    android:textSize="14dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textViewAddress"
    android:text=" "
    android:textSize="12dp"
    android:layout_alignStart="@+id/textViewName"
    android:layout_alignBottom="@+id/textAddress"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textPostcode"
    android:layout_below="@+id/textAddress"
    android:text="Postcode:"
    android:layout_marginTop="10dp"
    android:layout_marginStart="30dp"
    android:textSize="14dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textViewPostcode"
    android:text=" "
    android:textSize="12dp"
    android:layout_alignStart="@+id/textViewName"
    android:layout_alignBottom="@+id/textPostcode"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textMobile"
    android:layout_below="@+id/textPostcode"
    android:text="Mobile number:"
    android:layout_marginTop="10dp"
    android:layout_marginStart="30dp"
    android:autoLink="phone"
    android:linksClickable="true"
    android:textSize="14dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textViewMobile"
    android:text=" "
    android:textSize="12dp"
    android:layout_alignStart="@+id/textViewName"
    android:layout_alignBottom="@+id/textMobile"
    android:autoLink="phone"
    android:linksClickable="true"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textTime"
    android:layout_below="@+id/textMobile"
    android:text="Appointment time:"
    android:layout_marginTop="10dp"
    android:layout_marginStart="30dp"
    android:textSize="14dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textViewTime"
    android:text=" "
    android:textSize="12dp"
    android:layout_alignStart="@+id/textViewName"
    android:layout_alignBottom="@+id/textTime"/>



<Button
    android:id="@+id/buttonInformation"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textTime"
    android:text="View Patient Information"
    android:textSize="12dp"
    android:layout_marginTop="10dp"
    android:layout_centerHorizontal="true"/>

</RelativeLayout>

我是否还必须将所有 TextView 放在某个东西中以将它们全部组合在一起?

谢谢

标签: androidtextview

解决方案


推荐阅读