#java #android-studio
#java #android-studio
Вопрос:
Я использую Android Studio для создания приложения для колледжа, но я очень новичок в использовании Java. В настоящее время я пытаюсь заменить текст во фрагменте (если это то, что он вообще называется), но, похоже, я не могу заставить его работать. В настоящее время у меня настроен некоторый код, который определяет, проводите ли вы пальцем в определенном направлении, и хотите заменить некоторый текст при пролистывании в определенном направлении. Это мой код в настоящее время:
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import java.util.Random;
public class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener {
private static final String TAG = "Swipe position";
private float x1, x2, y1, y2;
private static int MIN_DISTANCE = 150;
private GestureDetector gestureDetector;
public boolean onHomeScreen;
{
onHomeScreen = true;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Initialize gesturedetector
this.gestureDetector = new GestureDetector(com.example.tindiertest1.MainActivity.this, this);
//Initialize navigation bar
BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation);
bottomNav.setOnNavigationItemSelectedListener(navListener);
//start at home screen
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new HomeFragment()).commit();
}
private BottomNavigationView.OnNavigationItemSelectedListener navListener =
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.nav_home:
selectedFragment = new HomeFragment();
if (!onHomeScreen) {
onHomeScreen = true;
}
break;
case R.id.nav_messages:
selectedFragment = new com.example.tindiertest1.MessagesFragment();
if (onHomeScreen) {
onHomeScreen = false;
}
break;
case R.id.nav_settings:
if (onHomeScreen) {
onHomeScreen = false;
}
selectedFragment = new com.example.tindiertest1.SettingsFragment();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
}
};
//Override on touch event
@Override
public boolean onTouchEvent(MotionEvent event) {
if (onHomeScreen) {
gestureDetector.onTouchEvent(event);
switch (event.getAction()) {
//starting to swipe gesture
case MotionEvent.ACTION_DOWN:
x1 = event.getX();
y1 = event.getY();
break;
//ending time swipe gesture
case MotionEvent.ACTION_UP:
x2 = event.getX();
y2 = event.getY();
//getting value for horizontal swipe
float valueX = x2 - x1;
//getting value for vertical swipe
float valueY = y2 - y1;
if (Math.abs(valueX) > MIN_DISTANCE) {
//detect left to right swipe
if (x2 > x1) {
Toast.makeText(this, "Right is swiped", Toast.LENGTH_SHORT).show();
Log.d(TAG, "Right Swipe");
} else {
//detect right to left swipe
Toast.makeText(this, "Left is swiped", Toast.LENGTH_SHORT).show();
Log.d(TAG, "Left Swipe");
}
} else if (Math.abs(valueY) > MIN_DISTANCE) {
//detect top to bottom swipe
if (y2 > y1) {
Toast.makeText(this, "Bottom is swiped", Toast.LENGTH_SHORT).show();
Log.d(TAG, "Bottom Swipe");
} else {
Toast.makeText(this, "Top is swiped", Toast.LENGTH_SHORT).show();
Log.d(TAG, "Top Swipe");
}
}
}
}
return super.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public void onShowPress(MotionEvent e) {
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return false;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
}
}
Я пытаюсь заменить текст в этом фрагменте:
<?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"
android:background="@android:color/holo_red_light">
<TextView
android:id="@ id/random_nummer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Home fragment"
android:textSize="30sp"
android:layout_centerInParent="true"/>
</RelativeLayout>
Как правильно заменить текст «домашнего фрагмента» при пролистывании в определенном направлении?
Комментарии:
1. итак… какое это имеет отношение к Java script
2. Извините, я случайно добавил тег javascript вместо java
Ответ №1:
Вы можете использовать:
TextView rn = (TextView)findViewById(R.id.random_nummer);
rn.setText("My text.");