如果找不到任何问题,如何使用 Android 解析红色文件名?
How do I resolve red filenames with Android if I can't find any issues?
问题:尽管进行了常见修复,但我似乎无法解析项目中的红色文件名。
我试图做的事情: 我在另一个项目中有现有的功能,例如一个 class
和一个 activity
,我将其复制到这个项目而不是重新创建它们。
我的尝试: 我已经修复了一些已识别或明显的问题和警告。我在 androidmanifest.xml
中包含了新的 activity,更正了 import
和 package
语句等。我继续在这里和其他地方进行搜索。我尝试了一些建议,例如使缓存无效并重新启动,运行 对每个文件的错误或问题进行分析,并简单地提交给 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();
}
}
我解决了我的问题,这可能是因为我太天真了。这些文件未被提交,因为它们未显示为“已检查”以提交。对这种情况的一个警告是我以前从未遇到过它,因为默认情况下我要提交的所有文件都会被检查,所以我之前没有看到它。一旦我选中该框,它就会提交,因为没有其他可能的“红色文件名”问题。
问题:尽管进行了常见修复,但我似乎无法解析项目中的红色文件名。
我试图做的事情: 我在另一个项目中有现有的功能,例如一个 class
和一个 activity
,我将其复制到这个项目而不是重新创建它们。
我的尝试: 我已经修复了一些已识别或明显的问题和警告。我在 androidmanifest.xml
中包含了新的 activity,更正了 import
和 package
语句等。我继续在这里和其他地方进行搜索。我尝试了一些建议,例如使缓存无效并重新启动,运行 对每个文件的错误或问题进行分析,并简单地提交给 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();
}
}
我解决了我的问题,这可能是因为我太天真了。这些文件未被提交,因为它们未显示为“已检查”以提交。对这种情况的一个警告是我以前从未遇到过它,因为默认情况下我要提交的所有文件都会被检查,所以我之前没有看到它。一旦我选中该框,它就会提交,因为没有其他可能的“红色文件名”问题。