如果找不到任何问题,如何使用 Android 解析红色文件名?

How do I resolve red filenames with Android if I can't find any issues?

问题:尽管进行了常见修复,但我似乎无法解析项目中的红色文件名。

我试图做的事情: 我在另一个项目中有现有的功能,例如一个 class 和一个 activity,我将其复制到这个项目而不是重新创建它们。

我的尝试: 我已经修复了一些已识别或明显的问题和警告。我在 androidmanifest.xml 中包含了新的 activity,更正了 importpackage 语句等。我继续在这里和其他地方进行搜索。我尝试了一些建议,例如使缓存无效并重新启动,运行 对每个文件的错误或问题进行分析,并简单地提交给 git (VCS)。一些类似的帖子像 JetBrains 一样没有得到解决,第一反应是提交给 VCS。一些建议是在 Settings 中进行更改,但我真的觉得这是一种解决方法,而不是解决方案。

activity布局

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

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/master_enter_db" />
    <EditText
            android:id="@+id/database_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:autofillHints="@string/master_enter_db"
            android:hint="@string/master_enter_db"
            android:inputType="text"
            android:text="">
    </EditText>
    <Button
            android:id="@+id/addDatabase"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/master_add_db">
    </Button>
    <ListView
            android:id="@+id/database_list"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
    </ListView>
    <Button
            android:id="@+id/useSelectedDatabase"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/master_no_db_selected"
            android:clickable="false"
    >
    </Button>

</LinearLayout>

Activity Class

public class MainActivityMaster extends AppCompatActivity {

MasterDatabase mMasterDB;
MasterDao mMasterDBDao;
EditText mDBToAdd;
Button mAddDB,mUseSelectedDatabase;
ListView mDatabaseList;
SimpleCursorAdapter mSCA;
Cursor mCsr;
long mSelectedDatabaseId = 0;
String mSelectedDatabaseName = "";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_master);
    mDBToAdd = this.findViewById(R.id.database_name);
    mAddDB = this.findViewById(R.id.addDatabase);
    mUseSelectedDatabase = this.findViewById(R.id.useSelectedDatabase);
    mDatabaseList = this.findViewById(R.id.database_list);

    mMasterDB = MasterDatabase.getInstance(this);
    mMasterDBDao = mMasterDB.getMasterDao();


    setUpAddDBButton();
    setUpUseSelectedDatabaseButton();
    setOrRefreshDatabaseList();
}

private void setUpAddDBButton() {
    mAddDB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (mDBToAdd.getText().toString().length() > 0) {
                if (mMasterDBDao.insert(new MasterDatabaseList(mDBToAdd.getText().toString())) > 0) {
                    mDBToAdd.setText("");
                    setOrRefreshDatabaseList();
                }
            }
        }
    });
}
private void setUpUseSelectedDatabaseButton() {
    mUseSelectedDatabase.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (mSelectedDatabaseId > 0) {
                Intent intent = new Intent(view.getContext(),MainActivity.class);
                intent.putExtra(MainActivity.INTENT_EXTRA_DATABASEID, mSelectedDatabaseId);
                intent.putExtra(MainActivity.INTENT_EXTRA_DATABASENAME,mSelectedDatabaseName);
                startActivity(intent);
            }
        }
    });
}

private void setOrRefreshDatabaseList() {
    mCsr = mMasterDBDao.getAllDatabasesAsCursor();
    if (mSCA == null) {
        mSCA = new SimpleCursorAdapter(
                this.getApplicationContext(),
                android.R.layout.simple_list_item_1,
                mCsr,
                new String[]{MasterDatabaseList.COL_DATABASE_NAME},
                new int[]{android.R.id.text1},
                0
        );
        mDatabaseList.setAdapter(mSCA);
        mDatabaseList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            /* Handle Clicking on an Item (i.e. prepare UseSelected Button) */
            @SuppressLint("Range")
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                mSelectedDatabaseId = l;
                if (l > 0) {
                    mSelectedDatabaseName = mCsr.getString(mCsr.getColumnIndex(MasterDatabaseList.COL_DATABASE_NAME));
                    mUseSelectedDatabase.setText(mSelectedDatabaseName);
                    mUseSelectedDatabase.setClickable(true);
                } else {
                    mUseSelectedDatabase.setText(R.string.master_no_db_selected);
                    mUseSelectedDatabase.setClickable(false);
                }
            }
        });
    } else {
        mSCA.swapCursor(mCsr);
    }
}

@Override
protected void onResume() {
    super.onResume();
    setOrRefreshDatabaseList();
}

@Override
protected void onDestroy() {
    super.onDestroy();
    mCsr.close();
}

}

我解决了我的问题,这可能是因为我太天真了。这些文件未被提交,因为它们未显示为“已检查”以提交。对这种情况的一个警告是我以前从未遇到过它,因为默认情况下我要提交的所有文件都会被检查,所以我之前没有看到它。一旦我选中该框,它就会提交,因为没有其他可能的“红色文件名”问题。