Я создаю чат-приложение, в котором вы можете создавать группы. для создания групп я создал новую активность. он отображается в предварительном просмотре, но не отображается, когда я запускаю приложение и открываю действие. Я попробовал на другом телефоне, и появился только CircleImageView. но это OnClickListner не будет работать. нет ошибок при компиляции, логировании или отладке.
Я даже пробовал точки останова, чтобы проверить ошибку, но ничего не вышло. За исключением того, что реклама появляется. пробовал менять макеты, но ничего не появляется.
Я не знаю ошибки, поэтому вставляю файл CreateGroupActivity.java, а также файл activity_create_group.xml.
CreateGroupActivity.java:
package com.satyamedh.chitchatmessenger;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.theartofdev.edmodo.cropper.CropImage;
import com.theartofdev.edmodo.cropper.CropImageView;
import de.hdodenhof.circleimageview.CircleImageView;
public class CreateGroupActivity extends AppCompatActivity
{
private CircleImageView circleImageView;
private EditText editText;
private Button buttonconf, buttoncanc;
private final static int chosenProfileImage = 1;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_group);
initializeFields();
buttoncanc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent profileIntent = new Intent(CreateGroupActivity.this, MainActivity.class);
startActivity(profileIntent);
}
});
buttonconf.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (TextUtils.isEmpty(editText.getText())){
Toast.makeText(CreateGroupActivity.this, "Please enter text..", Toast.LENGTH_SHORT).show();
}
}
});
circleImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent galleryIntent = new Intent();
galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
galleryIntent.setType("image/*");
startActivityForResult(galleryIntent, chosenProfileImage);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == chosenProfileImage && resultCode == RESULT_OK && data != null)
{
Uri imageUri = data.getData();
CropImage
.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.start(this);
}
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE)
{
final CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
assert result != null;
Uri resultUri = result.getUri();
DatabaseReference rootref = FirebaseDatabase.getInstance().getReference();
Intent settingsIntent = new Intent(CreateGroupActivity.this, chooseUserActivity.class);
String key = rootref.push().getKey();
settingsIntent.putExtra("groupKey", key);
settingsIntent.putExtra("groupImage", resultUri);
settingsIntent.putExtra("groupName", editText.getText().toString());
startActivity(settingsIntent);
}
}
}
private void initializeFields()
{
MobileAds.initialize(this, "ca-app-pub-3127817354023186~6842500243");
final AdView mAdView;
mAdView = findViewById(R.id.my_adView_createGroup);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdLeftApplication() {
// Code to be executed when the user has left the app.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
});
circleImageView = findViewById(R.id.create_group_image);
editText = findViewById(R.id.create_group_name);
buttonconf = findViewById(R.id.confirm_button);
buttoncanc = findViewById(R.id.cancel_button);
}
}
activity_create_group.xml:
<?xml version = "1.0" encoding = "utf-8"?>
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:tools = "http://schemas.android.com/tools"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
tools:context = ".CreateGroupActivity">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width = "100dp"
android:layout_height = "100dp"
android:layout_alignParentStart = "true"
android:layout_alignParentTop = "true"
android:layout_alignParentEnd = "true"
android:layout_alignParentBottom = "true"
android:layout_marginStart = "51dp"
android:layout_marginTop = "87dp"
android:layout_marginEnd = "259dp"
android:layout_marginBottom = "551dp"
android:src = "@drawable/profile_image"
android:id = "@+id/create_group_image"/>
<EditText
android:layout_width = "250dp"
android:layout_height = "50dp"
android:layout_alignParentStart = "true"
android:layout_alignParentTop = "true"
android:layout_alignParentEnd = "true"
android:layout_alignParentBottom = "true"
android:layout_marginStart = "167dp"
android:layout_marginTop = "88dp"
android:layout_marginEnd = "4dp"
android:layout_marginBottom = "596dp"
android:background = "@drawable/inputs"
android:id = "@+id/create_group_name"
android:inputType = "text"
android:hint = "Group name here"/>
<Button
android:id = "@+id/confirm_button"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_alignParentStart = "true"
android:layout_alignParentTop = "true"
android:layout_alignParentEnd = "true"
android:layout_alignParentBottom = "true"
android:layout_marginStart = "168dp"
android:layout_marginTop = "141dp"
android:layout_marginEnd = "156dp"
android:layout_marginBottom = "542dp"
android:text = "Confirm"
android:background = "@drawable/buttons"/>
<Button
android:id = "@+id/cancel_button"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_alignParentStart = "true"
android:layout_alignParentTop = "true"
android:layout_alignParentEnd = "true"
android:layout_alignParentBottom = "true"
android:layout_marginStart = "263dp"
android:layout_marginTop = "140dp"
android:layout_marginEnd = "60dp"
android:layout_marginBottom = "546dp"
android:text = "Cancel"
android:background = "@drawable/buttons"/>
<com.google.android.gms.ads.AdView
xmlns:ads = "http://schemas.android.com/apk/res-auto"
android:id = "@+id/my_adView_createGroup"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_centerHorizontal = "true"
android:layout_alignParentBottom = "true"
ads:adSize = "SMART_BANNER"
ads:adUnitId = "ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>
</RelativeLayout>
Скриншот телефона Android (Redmi 2):
https://drive.google.com/file/d/18MMzLvcdIi8iLog1nR_NrJPcJf-NZG51/view?usp=sharing
Скриншот студии Android для ПК:
https://drive.google.com/file/d/1E3Suy967AS3aQS9TEkUlAh5kPjWr86u-/view?usp=sharing
Я новичок в stackoverflow, поэтому не могу прикреплять изображения. Прости.
ошибок тоже нет.
@atef, там написано, что мне нужно 10 (что-то, я не помню) для вставки картинок
Пожалуйста, не используйте сторонние источники для изображений. Нажмите кнопку изображения во время редактирования сообщения, чтобы загрузить его во встроенный сервис.
Не могу, пишет что нужно 10 репутации для вставки изображений




это нормально, потому что вы использовали так много значений выравнивания и атрибутов, которые сделали ваш макет нечувствительным, пожалуйста, используйте xml ниже и не забудьте добавить image:src и фон, который вы хотели
<?xml version = "1.0" encoding = "utf-8"?>
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:tools = "http://schemas.android.com/tools"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
tools:context = ".CreateGroupActivity">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width = "100dp"
android:layout_height = "100dp"
android:layout_margin = "20dp"
android:layout_alignParentStart = "true"
android:layout_alignParentTop = "true"
android:id = "@+id/create_group_image"/>
<EditText
android:layout_toRightOf = "@id/create_group_image"
android:layout_width = "250dp"
android:layout_marginTop = "20dp"
android:layout_height = "wrap_content"
android:id = "@+id/create_group_name"
android:inputType = "text"
android:hint = "Group name here"/>
<Button
android:layout_below = "@id/create_group_name"
android:layout_toRightOf = "@id/create_group_image"
android:id = "@+id/confirm_button"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "Confirm"/>
<Button
android:layout_below = "@id/create_group_name"
android:layout_toRightOf = "@id/confirm_button"
android:id = "@+id/cancel_button"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "Cancel"/>
<com.google.android.gms.ads.AdView
xmlns:ads = "http://schemas.android.com/apk/res-auto"
android:id = "@+id/my_adView_createGroup"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_centerHorizontal = "true"
android:layout_alignParentBottom = "true"
ads:adSize = "SMART_BANNER"
ads:adUnitId = "ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>
</RelativeLayout>
Не могли бы вы объяснить, почему он не отвечает?
но теперь он говорит Android resource linking failed
исправил это, изменив compilesdk 26 на compilesdk 28 в модуле build.gradle: приложение
добро пожаловать, пожалуйста, прочитайте здесь больше о том, как сделать пользовательский интерфейс отзывчивым: o7planning.org/en/10423/android-ui-layouts-tutorial
Добро пожаловать в stackoverflow, во-первых, лучше добавлять скриншоты в пост (есть возможность добавить фото в пост), а не вставлять внешнюю ссылку. Итак, вы определили свою деятельность в
AndroidManifest? также как вы запускаете активность? и я не вижу никаких логов в методеonCreate, можете ли вы поставить какие-нибудь логи и посмотреть, появятся ли эти логи?