Android Studio中找不到AppCompatActivity一直报红,且xml中的布局控件也在报红处理方法

1、问题

    无法继承AppCompatActivity,同样xml中的控件也在报红;

**

2、解决方法

1、先找到“project structure”,然后app–Dependencies,点击右上角的“+”,出现如下图所示
在这里插入图片描述
在这里插入图片描述
2.点击“Library dependency”

3.再搜索框中, 添加上com.android.support:appcompat-v7就可以了。
在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你想知道如何编写一个 Android Studio 程序,其布局包含按钮和图像,并且可以通过 Gridview 页面更换头像,是吗?我可以为你提供一些指导。 首先,你需要在 Android Studio 创建一个新的项目,然后创建一个布局文件来设计你的主界面。在这个布局文件,你可以添加一个按钮和一个图像控件,如下所示: ```xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/btn_change_avatar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="更换头像" android:layout_centerInParent="true"/> <ImageView android:id="@+id/img_avatar" android:layout_width="150dp" android:layout_height="150dp" android:layout_below="@+id/btn_change_avatar" android:layout_centerHorizontal="true" android:src="@drawable/default_avatar"/> </RelativeLayout> ``` 在这个布局文件,我们将按钮和头像控件放在一个相对布局,按钮居显示,头像控件在按钮下方并水平居。头像控件使用了一个名为 default_avatar 的图片作为默认的头像。 然后,你需要在 MainActivity.java 为按钮添加一个点击事件处理程序,以便在点击按钮时打开 Gridview 页面,让用户选择一个新的头像。你可以使用 startActivityForResult 方法来启动 Gridview 页面,并等待返回结果: ```java public class MainActivity extends AppCompatActivity { private ImageView mAvatarView; private static final int REQUEST_CODE_AVATAR = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button changeAvatarBtn = findViewById(R.id.btn_change_avatar); mAvatarView = findViewById(R.id.img_avatar); changeAvatarBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, AvatarActivity.class); startActivityForResult(intent, REQUEST_CODE_AVATAR); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE_AVATAR && resultCode == RESULT_OK) { int avatarId = data.getIntExtra(AvatarActivity.RESULT_AVATAR_ID, R.drawable.default_avatar); mAvatarView.setImageResource(avatarId); } } } ``` 在这个代码,我们为按钮添加了一个点击事件处理程序。当用户点击按钮时,我们创建了一个 Intent 对象,并使用 startActivityForResult 方法启动了一个名为 AvatarActivity 的新活动。我们还定义了一个请求代码 REQUEST_CODE_AVATAR,以便在 onActivityResult 方法检查返回的结果。这里我们传递了这个请求代码作为 startActivityForResult 的第二个参数。 当用户完成选择头像并返回到主界面后,onActivityResult 方法将被调用,并检查返回的请求代码和结果代码。如果请求代码为 REQUEST_CODE_AVATAR,结果代码为 RESULT_OK,那么我们可以从返回的 Intent 对象获取所选的头像 ID,并将它设置为 ImageView 的源图片。 最后,你需要创建一个新的活动 AvatarActivity,用于显示 Gridview 页面并让用户选择头像。这里我们可以使用一个名为 AvatarAdapter 的适配器类,用于加载头像图片列表,并将它们显示在 Gridview : ```java public class AvatarActivity extends AppCompatActivity { public static final String RESULT_AVATAR_ID = "result_avatar_id"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_avatar); GridView gridView = findViewById(R.id.grid_view); gridView.setAdapter(new AvatarAdapter(this)); gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(); intent.putExtra(RESULT_AVATAR_ID, AvatarAdapter.mAvatarIds[position]); setResult(RESULT_OK, intent); finish(); } }); } private static class AvatarAdapter extends BaseAdapter { private Context mContext; private static final int[] mAvatarIds = {R.drawable.avatar1, R.drawable.avatar2, R.drawable.avatar3, R.drawable.avatar4, R.drawable.avatar5, R.drawable.avatar6}; public AvatarAdapter(Context context) { mContext = context; } @Override public int getCount() { return mAvatarIds.length; } @Override public Object getItem(int position) { return mAvatarIds[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { // if it's not recycled, initialize some attributes imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(350, 350)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); } else { imageView = (ImageView) convertView; } imageView.setImageResource(mAvatarIds[position]); return imageView; } } } ``` 在这个代码,我们定义了一个名为 AvatarActivity 的活动,它通过 setContentView 方法加载了一个名为 activity_avatar 的布局文件。在这个布局文件,我们放置了一个 GridView 控件,并将其适配器设置为 AvatarAdapter 类的新实例。 AvatarAdapter 类是一个简单的适配器类,它加载了一个头像 ID 列表,并在 getView 方法将每个头像 ID 显示为一个 ImageView 控件。如果 convertView 参数为 null,则我们新创建一个 ImageView 控件;否则,我们重用 convertView 参数。这样做可以提高 GridView 的性能。 当用户点击 GridView 的某个头像时,我们创建了一个包含所选头像 ID 的新 Intent 对象,并设置了结果代码 RESULT_OK。然后,我们通过调用 setResult 方法,将 Intent 对象返回给主界面,并调用 finish 方法关闭 AvatarActivity 活动。这样,在 MainActivity ,我们就可以在 onActivityResult 方法获取所选的头像 ID,将其设置为 ImageView 的源图片。 希望这些指导对你有所帮助!如果你还有其他问题或需求,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值