小编Ope*_*FTW的帖子

os.rename()失败,被另一个进程使用

因此,我尝试重命名文件,并且一直说“该进程无法访问该文件,因为该文件正在被另一个进程使用。” 但是我知道它没有被其他进程使用,所以我不确定发生了什么。这是我的代码

while self.fileSet.hasMoreFiles():
    file = self.fileSet.nextFile()
    periodIndex=file.find(".")
    extension = file[periodIndex:]
    baseName=file[:periodIndex]
    self.newFile=open(file, 'w+')
    self.backupName = baseName + "_bak" + extension
    os.rename(file, baseName + "_bak" + extension)
    self.newFile=open(file, 'w+')
    self.writeNew()
Run Code Online (Sandbox Code Playgroud)

python file

4
推荐指数
1
解决办法
1932
查看次数

旋转后保持TextView文本,大小,可见性

所以我有一个非常基本的布局,在屏幕的顶部有一个EditText和一个Button.当有人点击按钮时,EditText输入将保存到文本视图中,然后隐藏EditText以及按钮.这是我的代码:

public void setName(View view){
    EditText editText = (EditText) findViewById(R.id.getUserName);
    Button button = (Button) findViewById(R.id.setName);
    TextView textView = (TextView) findViewById(R.id.displayName);
    playerName = editText.getText().toString();
    textView.setText(playerName);
    editText.setVisibility(View.GONE);
    button.setVisibility(View.GONE);
    textView.setTextSize(40);
    textView.setVisibility(View.VISIBLE);
}
Run Code Online (Sandbox Code Playgroud)

好吧,当屏幕旋转时,再次调用onCreate,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_score_keeper);
        // Identifies a textView
        TextView textView = (TextView) findViewById(R.id.displayName);
        // Hide that textView until later
        textView.setVisibility(View.GONE);
        // Set player name to default value
        playerName = "Player Name";
        // Set score to default value
        score = 0;

}
Run Code Online (Sandbox Code Playgroud)

这个问题是它丢失了我隐藏EditText和Button的事实,并且还再次隐藏了TextView.

如何保持所有这些属性相同?(例如,保持文本相同,文本大小,视图的可见性等); 是否可以使用onSaveInstanceState?

多谢你们.

OSFTW

java android android-lifecycle android-activity

2
推荐指数
1
解决办法
2083
查看次数

动态分配数组的有趣行为

所以我正在使用动态分配的数组,并且我将它设置为保存5个元素,因此应该是0-4.我做了一个函数来保留它,如果有必要,但我想看看当我在[5]为数组赋值时,我是否得到程序崩溃.但是,没有错误,直到[6].

这是我的代码:

int* dynamic_arr;
dynamic_arr = new int[5];

for(int i = 0; i <= 100; i++){
    dynamic_arr[i] = i;
    used++;
    cout << dynamic_arr[i]<<endl;
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

0 //i[0]
1 //i[1]
2 //i[2]
3 //i[3]
4 //i[4]
5 //i[5]  <-- should be out of range
Run Code Online (Sandbox Code Playgroud)

之后它崩溃了.

为什么我能够为数组的一部分分配一个值,因为缺少一个更好的术语?

谢谢

OpSrcFTW

编辑:感谢答案,谢谢.我会在下次发布快速回答之前阅读更多内容,抱歉.

c++ arrays dynamic

0
推荐指数
1
解决办法
93
查看次数

以编程方式设置按钮单击时的视图宽度

现在我有一个id为"getUserName"的EditText和一个旁边的按钮(都在线性视图中),id为"setName"我希望有人能够点击setName,并让EditText字段消失,按钮消失,和TextView取而代之.这是我到目前为止所拥有的:

public void setName(View view){
    EditText editText = (EditText) findViewById(R.id.getUserName);
    Button button = (Button) findViewById(R.id.setName);
    TextView textView = (TextView) findViewById(R.id.displayName);
    String playerName = editText.getText().toString();
    ((ViewManager)editText.getParent()).removeView(editText);
    ((ViewManager)button.getParent()).removeView(button);
    Log.d("ScoreKeeper", playerName);
}
Run Code Online (Sandbox Code Playgroud)

所以我成功地从屏幕上删除了所需的元素,但我不知道如何添加textView来取代它们.

我怎样才能做到这一点?我是Android的新手,所以如果这看起来无知,请原谅我.我试过看了!

谢谢

OPSRCFTW

java android

0
推荐指数
1
解决办法
187
查看次数