Android ProgrssBar不';t显示在屏幕上
我想在上传数据到DB时在屏幕上设置可见进度条。但当我把可视的,它不会显示在我的屏幕上。怎么了? 这是我的活动课Android ProgrssBar不';t显示在屏幕上,android,xml,progress-bar,Android,Xml,Progress Bar,我想在上传数据到DB时在屏幕上设置可见进度条。但当我把可视的,它不会显示在我的屏幕上。怎么了? 这是我的活动课 public class MainActivity extends AppCompatActivity { private CountryService countryService = new CountryServiceImpl(); private static final String INSERT_DATA_ITEM_MESSAGE = "
public class MainActivity extends AppCompatActivity {
private CountryService countryService = new CountryServiceImpl();
private static final String INSERT_DATA_ITEM_MESSAGE = "Insert data item selected";
private static final String EXIT_ITEM_MESSAGE = "Exit. Bye, bye";
private static final String ERROR_DURING_CONVERTING_JSON_TO_MAP_MESSAGE = "Error during converting JSON to Map. ";
private static final String JSON_FILE_NAME = "countries";
private static final String ASSET_FOLDER = "raw";
private static final String DATA_ARE_ALREADY_UPLOADED = "Data are already uploaded";
private static final String DATA_UPLOADED_SUCCESSFUL = "Data uploaded successful";
private static final String KEYWORD = "search";
private SQLiteDatabase sqLiteDatabase;
private SQLiteConnector sqLiteConnector;
private Spinner countryListSpinner;
private ListView listView;
private List<CountryWithCitiesDto> listCountryiesAndCities;
private ProgressBar progressBar;
private Map<String, String[]> getParsedMapFromJSONFile() {
InputStream inputStream = getResources().openRawResource(
getResources().getIdentifier(JSON_FILE_NAME,
ASSET_FOLDER, getPackageName()));
byte[] byteArrayFromJSONFile = JSONReader.getByteArrayFromJsonFile(inputStream);
if (byteArrayFromJSONFile != null) {
return buildMapFromByteArrayJSONFile(byteArrayFromJSONFile);
}
return Collections.emptyMap();
}
private Map<String, String[]> buildMapFromByteArrayJSONFile(byte[] jsonByteArray) {
try {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(jsonByteArray, new TypeReference<Map<String, String[]>>() {
});
} catch (IOException e) {
Log.e(ClassNameTags.MAIN_ACTIVITY, ERROR_DURING_CONVERTING_JSON_TO_MAP_MESSAGE + e.getMessage());
return Collections.emptyMap();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initDatabase();
countryListSpinner = (Spinner) findViewById(R.id.countryListSpinner);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
listView = (ListView) findViewById(R.id.cityListView);
progressBar.setVisibility(View.VISIBLE);
setAdapterToSpinner(setCountryListSpinner());
progressBar.setVisibility(View.INVISIBLE);
countryListSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
List<String> cityList = new ArrayList<>();
for (int i = 0; i < listCountryiesAndCities.get(position).getCityList().size(); i++) {
cityList.add(listCountryiesAndCities.get(position).getCityList().get(i).getNameCity());
}
setAdapterToCityList(cityList);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Intent intent = new Intent(MainActivity.this, WikiActivity.class);
intent.putExtra(KEYWORD, listCountryiesAndCities.get((int) countryListSpinner.getSelectedItemId()).getCityList().get(position).getNameCity());
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.insert_data_menu:
if (listCountryiesAndCities.isEmpty()) {
progressBar.setVisibility(View.VISIBLE);
uploadFromJsonToDatabase();
setAdapterToSpinner(setCountryListSpinner());
progressBar.setVisibility(View.INVISIBLE);
Toast.makeText(this, DATA_UPLOADED_SUCCESSFUL, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, DATA_ARE_ALREADY_UPLOADED, Toast.LENGTH_SHORT).show();
}
Log.i(ClassNameTags.MAIN_ACTIVITY, INSERT_DATA_ITEM_MESSAGE);
break;
case R.id.exit_menu:
Log.i(ClassNameTags.MAIN_ACTIVITY, EXIT_ITEM_MESSAGE);
break;
}
return super.onOptionsItemSelected(item);
}
private void initDatabase() {
sqLiteConnector = new SQLiteConnector(this);
sqLiteDatabase = sqLiteConnector.getWritableDatabase();
}
private void uploadFromJsonToDatabase() {
countryService.insertCountryWithCities(getParsedMapFromJSONFile(), sqLiteDatabase);
}
private String[] setCountryListSpinner() {
listCountryiesAndCities = countryService.getListCountriesWithCities(sqLiteDatabase);
String[] outArray = new String[listCountryiesAndCities.size()];
for (int i = 0; i < listCountryiesAndCities.size(); i++) {
System.out.println(listCountryiesAndCities.get(i).getCountry().getNameCountry());
outArray[i] = listCountryiesAndCities.get(i).getCountry().getNameCountry();
}
return outArray;
}
private void setAdapterToSpinner(String[] spinnerCountryArray) {
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_spinner_item, spinnerCountryArray);
countryListSpinner.setAdapter(adapter);
}
private void setAdapterToCityList(List<String> cityNames) {
ArrayAdapter<String> adapterToCityList
= new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1,
cityNames);
listView.setAdapter(adapterToCityList);
adapterToCityList.notifyDataSetChanged();
}
}
public类MainActivity扩展了AppCompatActivity{
private CountryService CountryService=new countryserviceinpl();
私有静态最终字符串INSERT\u DATA\u ITEM\u MESSAGE=“INSERT DATA ITEM selected”;
私有静态最终字符串EXIT\u ITEM\u MESSAGE=“EXIT.Bye,Bye”;
私有静态最终字符串错误\u在将\u JSON\u转换为\u MAP时\u MESSAGE=“将JSON转换为MAP时出错。”;
私有静态最终字符串JSON_FILE_NAME=“countries”;
私有静态最终字符串ASSET\u FOLDER=“raw”;
私有静态最终字符串数据已上传=“数据已上传”;
私有静态最终字符串数据上传成功=“数据上传成功”;
私有静态最终字符串关键字=“搜索”;
专用SQLiteDatabase SQLiteDatabase;
专用SQLiteConnector SQLiteConnector;
私人微调器;
私有列表视图列表视图;
私人名单国家和城市;
私人ProgressBar ProgressBar;
私有映射getParsedMapFromJSONFile(){
InputStream InputStream=getResources().openRawResource(
getResources().getIdentifier(JSON文件名,
资产_文件夹,getPackageName());
字节[]byteArrayFromJSONFile=JSONReader.getByteArrayFromJsonFile(inputStream);
if(byteArrayFromJSONFile!=null){
从ByteArrayJSonfile(byteArrayFromJSONFile)返回BuildMap;
}
return Collections.emptyMap();
}
私有映射buildMapFromByteArray JSonfile(字节[]jsonByteArray){
试一试{
ObjectMapper mapper=新的ObjectMapper();
返回mapper.readValue(jsonByteArray,newTypeReference(){
});
}捕获(IOE异常){
Log.e(ClassNameTags.MAIN_活动,将_JSON_转换为_MAP_MESSAGE+e.getMessage()时出错);
return Collections.emptyMap();
}
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initDatabase();
countryListSpinner=(Spinner)findViewById(R.id.countryListSpinner);
progressBar=(progressBar)findViewById(R.id.progressBar);
listView=(listView)findViewById(R.id.cityListView);
progressBar.setVisibility(View.VISIBLE);
setAdapterToSpinner(setCountryListSpinner());
progressBar.setVisibility(View.INVISIBLE);
countryListSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数位置,长arg3){
List cityList=new ArrayList();
for(int i=0;i<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.shapoval.countryparser.MainActivity">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_constraintTop_creator="1"
android:layout_marginStart="124dp"
android:layout_marginTop="-326dp"
tools:layout_constraintLeft_creator="1"
app:layout_constraintLeft_toLeftOf="@+id/cityListView"
app:layout_constraintTop_toTopOf="@+id/cityListView"
android:layout_marginLeft="-166dp" />
<Spinner
android:id="@+id/countryListSpinner"
android:layout_width="303dp"
android:layout_height="48dp"
android:layout_marginEnd="47dp"
android:layout_marginRight="47dp"
app:layout_constraintRight_toRightOf="parent"
tools:layout_constraintRight_creator="1"
tools:layout_constraintTop_creator="1"
tools:layout_constraintBottom_creator="1"
app:layout_constraintBottom_toTopOf="@+id/cityListView"
android:layout_marginBottom="22dp"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="25dp" />
<ListView
android:layout_width="0dp"
android:layout_height="361dp"
android:id="@+id/cityListView"
tools:layout_constraintRight_creator="1"
tools:layout_constraintBottom_creator="1"
android:layout_marginStart="31dp"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="31dp"
app:layout_constraintRight_toRightOf="parent"
tools:layout_constraintLeft_creator="1"
android:layout_marginBottom="55dp"
app:layout_constraintLeft_toLeftOf="parent" />
</android.support.constraint.ConstraintLayout>