This is chat which is to be translate
我有一个活动,其中我使用列表视图来显示使用bing api的所有语言,但是在语言选择活动崩溃时,我基本上必须将所选语言保存在变量中以供其他用途但它不起作用, 我写了下面的代码,不知道为什么这不起作用,虽然我尝试了各种方法,但不能完全理解这里的问题
public void initViews() {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, GetAllValues());
final ListView lang = (ListView) findViewById(R.id.select_lang);
lang.setAdapter(adapter);
loading = (ProgressBar) findViewById(R.id.pbLoading);
loading.setVisibility(ProgressBar.INVISIBLE);
lang.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
// Selected_Language = languages[parent.getSelectedItemPosition()];
// Selected_Language = lang.getItemAtPosition(position).toString();
Selected_Language = languages[parent.getSelectedItemPosition()].toString();
new MessageChatAdapter(mcontext);
writeToFile(Selected_Language);
Toast.makeText(mcontext,"Language Saved", Toast.LENGTH_LONG).show();
// When clicked, show a toast with the TextView text
}
});
}
这是完整的java文件,代码在使用微调器时工作正常,但是当我使用listView
时,它无效:
package com.fyp.voicechat.ui;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.fyp.voicechat.R;
import com.fyp.voicechat.adapter.MessageChatAdapter;
import com.memetix.mst.language.Language;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.Locale;
public class Setting_Activity extends Activity {
Language[] languages = Language.values();
public static String language;
ProgressBar loading;
public String Selected_Language;
public static Context mcontext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setting_);
mcontext = this;
initViews();
Locale loc = new Locale("en");
Log.i("-------------", Arrays.toString(loc.getAvailableLocales()));
}
public void initViews() {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, GetAllValues());
final ListView lang = (ListView) findViewById(R.id.select_lang);
lang.setAdapter(adapter);
loading = (ProgressBar) findViewById(R.id.pbLoading);
loading.setVisibility(ProgressBar.INVISIBLE);
lang.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
// Selected_Language = languages[parent.getSelectedItemPosition()];
// Selected_Language = lang.getItemAtPosition(position).toString();
Selected_Language = languages[parent.getSelectedItemPosition()].toString();
new MessageChatAdapter(mcontext);
writeToFile(Selected_Language);
Toast.makeText(mcontext,"Language Saved", Toast.LENGTH_LONG).show();
// When clicked, show a toast with the TextView text
}
});
/* spin = (Spinner) findViewById(R.id.spin);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, GetAllValues());
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(dataAdapter);
send = (ImageView) findViewById(R.id.ivSend);
//spin.setVisibility(Spinner.INVISIBLE);
loading = (ProgressBar) findViewById(R.id.pbLoading);
loading.setVisibility(ProgressBar.INVISIBLE);
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Selected_Language = languages[spin.getSelectedItemPosition()].toString();
new MessageChatAdapter(mcontext);
writeToFile(Selected_Language);
Toast.makeText(mcontext,"Language Saved", Toast.LENGTH_LONG).show();
}
});*/
}
private void writeToFile(String data) {
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("config.txt", Context.MODE_PRIVATE));
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
public String[] GetAllValues(){
String lan[] = new String[languages.length];
for(int i = 0; i < languages.length; i++){
lan[i] = languages[i].name();
}
return lan;
}
}